Python Developer for 3D Mesh Clipping Pipeline (Trimesh, Shapely, PyProj)

Заказчик: AI | Опубликовано: 08.01.2026
Бюджет: 250 $

We are looking for an experienced Python developer with strong 3D geometry skills to implement an automated mesh clipping pipeline for building extraction. Given OBJ-based 3D city tiles and building footprint polygons, the script must select the correct tiles, clip the mesh using the footprint polygon, clean the result, and export a compressed GLB. This is a headless pipeline only (no photogrammetry, no rendering/viewer work). The output will later be deployed on AWS. Responsibilities 1) Tile Selection - Read building footprint polygons (GeoJSON). - Transform polygon coordinates to match the mesh CRS using pyproj. - Detect which OBJ tiles intersect the footprint polygon using Shapely. - Support multi-tile selection and merging when a building crosses tile boundaries. 2) Mesh Loading and Merging - Load selected OBJ tiles into a unified mesh using Trimesh. - If multiple tiles are selected, merge into a single Trimesh object. 3) Cutting Volume Creation - Convert the 2D footprint polygon into a 3D cutting volume by extruding the polygon with a generous Z-height range. - Create a Trimesh solid suitable for boolean operations. 4) Boolean Clipping - Perform mesh intersection/clipping using Trimesh boolean operations (e.g., trimesh.boolean.intersection) or another robust boolean backend. 5) Mesh Cleanup - Remove small disconnected components and floating geometry. - Recompute normals and improve watertightness where feasible. - Optional mesh simplification if it improves performance or output quality. 6) Export - Export intermediate output as OBJ. - Export final output as GLB with Draco compression using tools such as obj2gltf or gltf-pipeline. Script Requirements - CLI-only, headless execution. - Modular structure suitable for AWS Batch integration. - Clean, well-structured Python code. - Input parameters must include: - OBJ tile folder path - Target polygon (GeoJSON or WKT) - Output path (GLB) Required Skills Must Have - Strong Python experience (3–5+ years). - Experience with Trimesh (or equivalent mesh tools such as PyMeshLab/CGAL). - Practical knowledge of boolean mesh operations and common failure cases. - Experience with Shapely and pyproj. - Understanding of 3D coordinate systems and projections. - Ability to work with large meshes (50–300MB OBJ files). Nice to Have - Experience with obj2gltf or gltf-pipeline and Draco compression workflows. - AWS familiarity (Batch, S3) for future integration. - Computational geometry knowledge. - Experience with tile-based 3D city models. - Performance optimization for heavy mesh operations. Deliverables 1) Python script or small package that: - Loads and merges relevant tiles - Transforms coordinates - Builds a cutting mesh - Clips via boolean operations - Cleans the result - Exports OBJ (intermediate) and GLB (final, compressed) 2) Documentation on how to run it. 3) A small CLI wrapper (example): python clip.py --tile_folder /path/to/tiles --polygon building.geojson --output out.glb