Desktop app for turning natural-language prompts into structurally valid 3D point clouds and preview meshes.
Project description
IronEngine 3D Creator
Prompt-to-3D desktop generator with structural repair, live viewport preview, and local/cloud LLM support
Turn natural-language prompts into editable 3D point clouds, repair common structural mistakes automatically, preview the result in a live Qt/OpenGL viewport, and export to formats that fit the wider IronEngine toolchain.
Built and packaged by NiusRobotLab.
Why this project exists
Most LLM-to-3D experiments fail in the same places: legs float, supports intersect badly, repeated parts lose spacing, and tiny local models drift out of structure. IronEngine 3D Creator solves that by making the model choose a compact procedural recipe instead of drawing raw geometry directly.
The workflow is:
Prompt -> SOUL rules -> LLM JSON spec -> validator -> integrity repair -> point-cloud sampler -> mesh reconstruction -> preview/export
That keeps generations fast, seedable, reproducible, and much easier to repair than arbitrary mesh output.
Screenshots
Full UI driven locally with qwen3.5:0.8b
Generated point-cloud viewport
Reconstructed mesh preview
The screenshots above were captured from the local app flow in the IronEngineWorld Conda environment using Ollama with qwen3.5:0.8b and a porcelain-vase prompt.
Highlights
- Structured generation: the LLM returns a compact
GenerationSpecof primitives, transforms, labels, and surface features. - Deterministic integrity repair: grounding, attachment, spacing, and framework repair happen after parsing so common structural failures are fixed automatically.
- Real desktop UI: PySide6-based editor with prompt controls, streaming token view, live viewport, mesh mode, and editing tools.
- Multiple model backends: Ollama and LM Studio locally, plus Anthropic and OpenAI in the cloud.
- Renderer API included: offscreen render helpers let you create RGBA previews without opening the full app.
- Package-ready layout: Conda environment file, wheel manifest, packaged prompt rules, contributor guide, and changelog are included.
Core capabilities
| Area | What it does |
|---|---|
| Generation | Produces 3D point clouds from text prompts or auto templates |
| Integrity | Repairs grounding, adjacency, symmetry, and framework alignment |
| Geometry | Supports procedural primitives including box, sphere, cylinder, capsule, cone, torus, ellipsoid, prism, helix, and plane |
| Surface detail | Applies features such as scratch, curve_pattern, bump_field, dent, erosion, ridges, holes, and fur |
| Rendering | Shows points, mesh, or both with textured and plain color modes |
| Export | Writes PLY, PCD, GLB, and OBJ |
| Editing | Supports brush move, warp, paint, smooth, and undo/redo |
| Performance | Uses NumPy by default and can accelerate with optional GPU backends |
Repository layout
src/ironengine_3d_creator/
alignment/ # parsing, schema, defaults, validation, integrity repair
core/ # exporter, pipeline, resources, settings, session
generation/ # samplers, features, textures, reconstruction
llm/ # providers, prompts, model catalogs, thinking filters
rendering/ # offscreen rendering API
ui/ # Qt main window, panels, viewport, dialogs, workers
docs/
INSTALL.md
PROJECT_ANALYSIS.md
assets/readme/
tools/
benchmark.py
Installation
Recommended: Conda with IronEngineWorld
conda env create -f environment.yml
conda activate IronEngineWorld
python -m pip install -e .
If IronEngineWorld already exists
conda activate IronEngineWorld
python -m pip install -e .
open3d is part of the base package requirements, so mesh reconstruction and export work out of the box after install.
Optional extras
Use extras only for features you actually want:
python -m pip install -e .[anthropic]
python -m pip install -e .[openai]
python -m pip install -e .[gpu_taichi]
python -m pip install -e .[gpu_cupy]
python -m pip install -e .[gpu_torch]
python -m pip install -e .[nvidia]
python -m pip install -e .[sim]
python -m pip install -e .[all]
| Extra | Purpose |
|---|---|
gpu_taichi |
Cross-platform GPU fallback with Taichi |
gpu_cupy |
CUDA array acceleration through CuPy |
gpu_torch |
PyTorch-based GPU fallback |
nvidia |
VRAM/resource monitoring via NVML |
anthropic |
Anthropic provider support |
openai |
OpenAI provider support |
sim |
IronEngine Sim / viewer integration |
all |
Installs all optional extras in one step |
Local Ollama setup
The default local path is Ollama. The project already works with available qwen3.5 variants such as qwen3.5:0.8b, qwen3.5:2b, qwen3.5:4b, and qwen3.5:9b when those models are installed locally.
ollama serve
ollama pull qwen3.5:0.8b
Then in the app:
- Set Provider to
ollama. - Keep Endpoint as
http://localhost:11434. - Select a local
qwen3.5model. - Save the config.
- Enter your prompt and click Generate.
Run the application
conda activate IronEngineWorld
python -m ironengine_3d_creator
After installation, this also works:
ironengine-3d-creator
How to use the app
1. Configure the model
- Choose a provider in the right-side LLM configuration panel.
- For local usage, use
ollamawith aqwen3.5model. - Turn on Reasoning / thinking mode when you want better deliberation and can afford slower generation.
- Leave Code mode off unless you specifically want sandboxed Python generation instead of structured JSON specs.
2. Describe the object
Use the left-side Requirements panel:
- Pick a shape hint or leave it on auto.
- Set the point budget.
- Tune the approximate bounding box.
- Add support counts when helpful.
- Write a plain-language prompt with material, silhouette, and detail cues.
Example prompts:
A Chinese porcelain vase with cobalt blue painted bands and a polished ceramic finishA weathered iron fence with evenly spaced bars and decorative finialsA low wooden stool with four legs and deep scratches across the seatA stylized quadruped creature with a wide torso and short legs
3. Generate and inspect
- Click Generate for LLM-driven output.
- Click Auto to use built-in template generation without an LLM.
- Watch the token stream while the provider emits reasoning or JSON.
- Inspect the spec preview after generation.
4. View the model
- Use Points, Mesh, or Points + Mesh in the toolbar.
- Toggle Textured or Plain color mode.
- Use Wireframe when evaluating reconstructed meshes.
- Press
Fto frame the cloud.
5. Edit and export
- Use brush, warp, paint, or smooth from the editing panel.
- Export to
PLY,PCD,GLB, orOBJ. - Use Send to SceneEditor to hand off to downstream IronEngine tools when available.
Keyboard shortcuts
| Action | Shortcut |
|---|---|
| Generate | Ctrl+G |
| Auto generate | Ctrl+Shift+G |
| Save session | Ctrl+S |
| Open session | Ctrl+O |
| Export | Ctrl+E |
| Undo | Ctrl+Z |
| Redo | Ctrl+Y or Ctrl+Shift+Z |
| User guide | F1 |
| Frame camera | F |
| Points mode | 1 |
| Mesh mode | 2 |
| Points + mesh | 3 |
Packaging and distribution
This repository is prepared to be consumed as a Python package.
Build distributables
conda activate IronEngineWorld
python -m build
Install the built wheel locally
conda activate IronEngineWorld
python -m pip install dist\ironengine_3d_creator-0.2.0-py3-none-any.whl
Important packaging notes
SOUL.mdis bundled into the package so prompt rules still work from wheel installs.environment.ymlprovides the recommended Conda-first setup.MANIFEST.inincludes the main docs and prompt assets in source distributions.- The repository is licensed under the Apache License 2.0.
Docs
docs/INSTALL.md鈥?installation and package smoke-test notesdocs/PROJECT_ANALYSIS.md鈥?architecture and repo-readiness audit summaryCONTRIBUTING.md鈥?development workflow notesCHANGELOG.md鈥?tracked repository cleanup and packaging changes
Known practical notes
- The best local experience comes from an already-running Ollama server.
- Small
qwen3.5models are fast and usable because the app asks for a compact JSON recipe instead of full geometry. - Mesh mode depends on point-cloud reconstruction quality, so very sparse generations may still look better in points mode.
- GPU extras are optional and should only be installed when they match your machine and drivers.
License
This project is licensed under the Apache License 2.0. See LICENSE for the full text.
Screenshot provenance
The current README images were produced locally from the real application flow using:
- Conda environment:
IronEngineWorld - Provider:
ollama - Model:
qwen3.5:0.8b
If the UI or visual styling changes, refresh the embedded screenshots from a new local capture run before publishing.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ironengine_3d_creator-0.2.0.tar.gz.
File metadata
- Download URL: ironengine_3d_creator-0.2.0.tar.gz
- Upload date:
- Size: 431.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f0cba1096482155f305ba16c5c8a5ef65e8e5e7f55e0660726cc5e40f6e3eed9
|
|
| MD5 |
04bfafe44eb181d164130417b816f0ea
|
|
| BLAKE2b-256 |
e6d0693fdd0f178e3082fc1c784dbe71632f203ddab1d0f66a7f9503fad053ca
|
Provenance
The following attestation bundles were made for ironengine_3d_creator-0.2.0.tar.gz:
Publisher:
publish-pypi.yml on dunknowcoding/IronEngine-3DCreator
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ironengine_3d_creator-0.2.0.tar.gz -
Subject digest:
f0cba1096482155f305ba16c5c8a5ef65e8e5e7f55e0660726cc5e40f6e3eed9 - Sigstore transparency entry: 1406595285
- Sigstore integration time:
-
Permalink:
dunknowcoding/IronEngine-3DCreator@8eebd4c78656d164c346afe67037fb25ad039d65 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/dunknowcoding
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@8eebd4c78656d164c346afe67037fb25ad039d65 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file ironengine_3d_creator-0.2.0-py3-none-any.whl.
File metadata
- Download URL: ironengine_3d_creator-0.2.0-py3-none-any.whl
- Upload date:
- Size: 114.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
960954465bf01d0f0aecf9689ada756f9820984f378a3124c77f61881eed7e08
|
|
| MD5 |
d7e861e32af0c4f14ad588c747f576af
|
|
| BLAKE2b-256 |
4799068825b1875298dc831350af7b83aa0dc784bbb7968368bd6579145eb7d7
|
Provenance
The following attestation bundles were made for ironengine_3d_creator-0.2.0-py3-none-any.whl:
Publisher:
publish-pypi.yml on dunknowcoding/IronEngine-3DCreator
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ironengine_3d_creator-0.2.0-py3-none-any.whl -
Subject digest:
960954465bf01d0f0aecf9689ada756f9820984f378a3124c77f61881eed7e08 - Sigstore transparency entry: 1406595355
- Sigstore integration time:
-
Permalink:
dunknowcoding/IronEngine-3DCreator@8eebd4c78656d164c346afe67037fb25ad039d65 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/dunknowcoding
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@8eebd4c78656d164c346afe67037fb25ad039d65 -
Trigger Event:
workflow_dispatch
-
Statement type: