Image → textured high-poly model (FBX + GLB), ready to retopo in Cinema 4D or Blender. Open models only, running on your own GPU. An automatic quad retopo is there as an option.
image ──TRELLIS.2 or Hunyuan3D-2──▶ textured high-poly ──▶ QuadWild (or QuadriFlow) quads
─▶ UV unwrap ─▶ bake colour / normal / roughness
─▶ model.fbx (quads, textures embedded)
Why it bakes: every open texturing model works on triangles, so painting the quad mesh directly would triangulate it. Instead the high-poly is painted, then its colour and surface detail are baked onto the quad mesh’s own UVs. This is the standard high-to-low workflow.
| Shape from 1 image | TRELLIS.2 (Microsoft, MIT): sparse grid up to 1536³, much finer detail |
| … or front + left/back/right | Hunyuan3D-2 / 2mv: softer shapes (384³ grid), takes extra views |
| Quads at a target face count | QuadWild (default): loops follow creases and features. QuadriFlow: an even grid, with symmetry |
| Texture | Hunyuan paint on the high-poly, baked to 2K maps |
| Output | .fbx with quads and embedded textures; --glb adds a triangulated GLB |
| Not Tripo’s Smart Mesh | QuadWild traces creases and curvature, so it does well on hard surfaces, but it does not know what an eye or a mouth is. Tripo’s learned topology is still better on faces. |
These models’ CUDA extensions are much easier to build on Linux, so this runs in WSL2 (Ubuntu inside Windows, with full access to the GPU).
wsl --update, then wsl --install -d Ubuntu (any Ubuntu from wsl --list --online works). Reboot if asked, then open Ubuntu from the Start menu and pick a username./mnt/c are much slower)
and run the installer:
cd ~ && git clone https://github.com/colinwillow/3dGen && cd 3dGen
bash setup/install_wsl.sh
It installs conda, CUDA 12.4, PyTorch, Hunyuan3D-2, TRELLIS.2, QuadWild and a headless Blender 4.2. Allow 40–60 minutes. The model weights (~25 GB) download on the first run.
conda activate trellis2 && hf auth login, and paste the token.Until then, Hunyuan3D-2 still works.
Updating: cd ~/3dGen && git pull, then restart the app. When an update adds something new
to install (it will say so), also re-run bash setup/install_wsl.sh. It skips what’s already there.
Double-click 3dGen on your desktop (the installer puts it there). A small window opens, and that window is the app running; close it to stop the app. Your browser then opens http://localhost:7860:
--paint-faces, default 100k).Every result stays in the History list (stored in 3dGen/jobs/). Jobs run one at a time.
If you queue several, they wait their turn, and they resume if you close the app halfway.
Open an Ubuntu terminal, then:
conda activate gen3d && cd ~/3dGen
# one image -> textured high-poly FBX/GLB (your Windows files are under /mnt/c)
python -m gen3d make /mnt/c/Users/<you>/Pictures/robot.png
# ... at a chosen polygon count (10k-2M)
python -m gen3d make /mnt/c/Users/<you>/Pictures/robot.png --polys 1000000
# ... plus an automatic quad retopo at ~5000 faces
python -m gen3d make /mnt/c/Users/<you>/Pictures/robot.png --retopo --faces 5000
# TRELLIS.2: finer shape detail (one image)
python -m gen3d make robot.png --model trellis --polys 1000000
# multi-view with Hunyuan: better backs and sides
python -m gen3d make front.png --left left.png --back back.png --faces 5000
# quad-retopo ANY mesh you already have (e.g. a high-poly from Tripo or ZBrush)
python -m gen3d retopo statue.glb --faces 5000 --symmetry
Output goes to out/<name>/. Open it from Windows Explorer at \\wsl$\Ubuntu\home\<you>\3dGen\out,
or write straight to Windows with --out /mnt/c/Users/<you>/Desktop/3dgen.
Useful knobs:
--faces 5000: target face count (QuadriFlow lands within ~10%)--engine quadwild|quadriflow: the quad remesher (QuadWild falls back to QuadriFlow if it fails)--sharp 35: QuadWild’s crease angle kept as a hard edge; -1 for organic shapes--symmetry: mirrored quad flow (QuadriFlow only)--tris: decimated triangles instead of quads--voxel 0.006: detail of the clean shell built before quadding. Lower it (0.003) if thin
parts like fingers or antennae disappear; raise it if QuadriFlow fails.--tex 2048: baked map size--turbo: much faster shape, a little less detail--no-texture: shape onlyexport TRIPO_API_KEY=tsk_...
python -m gen3d tripo robot.png --faces 5000
Optional, and it costs money: it uses your own Tripo API key and spends your Tripo credits, like generating on their site. Nothing goes to Tripo unless you run this command. It sends the image through Tripo’s API with quads + smart low-poly + PBR, then
grounds and re-exports the result as FBX. The task fields follow Tripo’s docs; if one is
refused, --set field=value passes any option through without a code change.