| import trimesh | |
| import sys | |
| import os | |
| def visualize(mesh_path): | |
| if not os.path.exists(mesh_path): | |
| print(f"Error: File {mesh_path} not found.") | |
| return | |
| try: | |
| # Load the mesh | |
| # force='mesh' ensures we get a Trimesh object if possible, | |
| # though .obj usually loads as such or a Scene. | |
| mesh = trimesh.load(mesh_path, force='mesh') | |
| print(f"Loaded mesh from {mesh_path}") | |
| print(f"Vertices: {len(mesh.vertices)}") | |
| print(f"Faces: {len(mesh.faces)}") | |
| # Create a scene to add lights and camera if needed, | |
| # but mesh.show() handles basic setup. | |
| print("Opening visualization window...") | |
| mesh.show() | |
| except Exception as e: | |
| print(f"Failed to visualize mesh: {e}") | |
| print("\nNote: Visualization requires a display environment (GUI).") | |
| print("If you are running on a headless server, you cannot open a window.") | |
| if __name__ == "__main__": | |
| # Default to output_mesh.obj if no argument provided | |
| mesh_path = "output_mesh.obj" | |
| if len(sys.argv) > 1: | |
| mesh_path = sys.argv[1] | |
| visualize(mesh_path) | |