MeshPainter is a tiny 3D mesh + texture utility built with Python. It demonstrates the kind of tools work common in content pipelines: mesh decimation, smoothing, normals, image adjustments, and normal map generation with a minimal GUI.
- Mesh: load
.ply/.obj/.stl, simplify (quadric decimation), Laplacian smooth, recompute normals, preview, export - Texture: brightness/contrast/saturation, hue shift, checker overlay, generate normal map from a height map
- GUI so you can batch operations or click buttons
python -m venv .venv
source .venv/bin/activate # Windows: . .venv/Scripts/activate
pip install -r requirements.txt# GUI
python main.py --gui
# CLI — create sample assets
python main.py --make-samples
# CLI — simplify mesh to 8k triangles
python main.py --mesh assets/sample_mesh.ply --simplify 8000 --save out/simplified.ply
# CLI — adjust texture + output normal map
python main.py --tex assets/sample_texture.png --brightness 1.2 --hue 25 --save-tex out/tex.png --normal out/tex_normal.pngThis repo shows hands‑on experience with:
- Mesh processing APIs (Open3D): decimation, smoothing, normals
- Texture processing (Pillow/NumPy): color transforms, procedural overlays
- Tools mindset: small GUI