Una panoramica comparativa: MeshLib, PyMesh, Matplotlib mplot3d e Blender bpy, e quando scegliere ciascuna.
Hai già visto Open3D, PyVista e CadQuery. L'ecosistema Python per il 3D è ampio, e ogni libreria eccelle in un compito specifico. Conoscerne l'esistenza e lo scopo ti aiuta a scegliere lo strumento giusto senza dover reinventare la ruota.
| Libreria | Punto di forza |
|---|---|
| MeshLib | Elaborazione e riparazione di mesh molto veloce |
| PyMesh | Operazioni geometriche avanzate su mesh (booleane, remeshing) |
| Matplotlib mplot3d | Grafici 3D semplici, integrati con l'ecosistema dati che già conosci |
| Blender bpy | Motore 3D completo: modellazione, animazione, rendering fotorealistico |
Libreria pensata per elaborare mesh in modo molto veloce: riparare buchi, rimuovere rumore, semplificare geometrie complesse. Utile quando i dati 3D (es. da uno scanner) sono "sporchi" e vanno ripuliti prima di ogni altra elaborazione.
Specializzata in operazioni geometriche avanzate: unioni e sottrazioni booleane tra mesh, remeshing (rigenerare la triangolazione di una superficie), analisi della qualità della mesh.
L'estensione 3D di Matplotlib, che già conosci per i grafici 2D. Perfetta per grafici scientifici semplici in 3D (superfici, scatter plot 3D) senza dover imparare una libreria nuova.
bpy è il modulo Python integrato in Blender, il software di modellazione e animazione 3D open source più completo. Permette di automatizzare modellazione, materiali, luci, animazioni e rendering fotorealistico via script.
Dati "sporchi" da pulire → MeshLib. Operazioni geometriche complesse tra mesh → PyMesh. Un grafico 3D veloce per un report dati → Matplotlib mplot3d. Rendering fotorealistico o animazione → Blender bpy.
Spunta ogni passaggio man mano che lo completi: sbloccherai l'attestato di questa guida al termine.
Esempio per il punto 1
from mpl_toolkits.mplot3d import Axes3D import matplotlib.pyplot as plt import numpy as np x = np.random.rand(50) y = np.random.rand(50) z = np.random.rand(50) fig = plt.figure() ax = fig.add_subplot(projection='3d') ax.scatter(x, y, z) plt.show()
Esempio per il punto 2
X = np.linspace(-5, 5, 50) Y = np.linspace(-5, 5, 50) X, Y = np.meshgrid(X, Y) Z = np.sin(np.sqrt(X**2 + Y**2)) ax = plt.figure().add_subplot(projection='3d') ax.plot_surface(X, Y, Z) plt.show()
Esempio per il punto 3
# Confronto concettuale: quale libreria useresti per... # "Ho una scansione 3D piena di buchi da riparare" → MeshLib # "Devo unire due mesh complesse in una sola forma" → PyMesh # "Voglio un rendering fotorealistico con luci e materiali" → Blender bpy
Esempio per il punto 4
import bpy bpy.ops.mesh.primitive_cube_add(size=2) print(bpy.context.object.name) # "Cube"
Tocca ogni termine per vederne la definizione.
Usa Matplotlib mplot3d per visualizzare la superficie della funzione z = x² + y² su una griglia di valori da -5 a 5.
Costruisci una tabella (anche solo su carta o in un file di testo) che confronti le 4 librerie di questa guida più Open3D, PyVista e CadQuery per: facilità d'uso, velocità, e ambito d'uso principale.
Un collega usa Matplotlib mplot3d per cercare di riparare automaticamente una mesh 3D con migliaia di buchi provenienti da uno scanner. Spiega perché questa non è la scelta più adatta, e quale libreria sarebbe più indicata.
Completa tutti i 5 passaggi della checklist per sbloccare il tuo attestato in PDF.