A tool that generates 3D objects with separate, editable parts - instead of a single merged blob
website · discord · twitter/X · github issues
Nova3D generates 3D assets as executable construction procedures. The pipeline writes Blender-native Python scripts, returning a structured GLB with named, separately addressable parts.
This is architecturally different from diffusion-based generators (Meshy, Tripo, Rodin), which extract a single merged mesh with no part boundaries, and from OpenSCAD-based systems (CADAM), which guarantee manifold solids but have a hard ceiling on organic shapes, hierarchy, materials, and structural editability.
Nova3D uses Blender's scene graph as the native representation - the most expressive geometry substrate available - making it a strict superset of both approaches.
This repo is the client. It connects to our (currently) closed-source hosted service.
The client is built with Flutter/Dart. If you don't have Flutter 3.24+ installed, set it up first:
🪟 Windows
Install Flutter via Chocolatey (run PowerShell as Administrator):
choco install flutterThen close and reopen your terminal, and verify:
flutter doctorDon't have Chocolatey? Install it here, or follow the manual Flutter install guide.
🐧 Linux
Install Flutter via Snap:
sudo snap install flutter --classic
flutter sdk-path # confirm install path
flutter doctorOnce flutter doctor shows no blocking issues, continue with Quick Start below.
Get it running locally in under 2 minutes. Requires Flutter 3.24+.
# 1. Clone and Install
git clone https://github.com/RareSense/Nova3D.git
cd Nova3D
flutter pub get
# 2. Run Local UI
# Note: Port 5555 is required for OAuth redirect authorization
flutter run -d web-server --web-hostname 0.0.0.0 --web-port 5555- Open
http://127.0.0.1:5555 - Sign in (Google/Email).
- Settings → Add your API Key (OpenAI, Anthropic, or Gemini).
- Enter a prompt and generate.


Nova3D is optimized for structured asset generation, but the advantage is not limited to multipart editing. In this comparison, Nova3D also shows stronger single-asset fidelity: cleaner silhouette control, sharper feature delineation, more coherent surface transitions, and better preservation of distinct functional substructures.
The important point is that explicit part structure is an added capability, not a quality tradeoff. Even when judged purely as a single 3D object, Nova3D aims for higher geometric clarity and stronger downstream readiness; preserving named, separately editable components comes on top of that.

Nova3D emphasizes semantic separation with usable structure. The goal is to preserve discrete components as independently addressable objects with stable boundaries, clearer instance separation, and better edit locality.
In practice, that means Nova3D is designed for assets that need to remain actionable after generation: users can inspect, regenerate, restyle, articulate, or export components without collapsing the model back into a single undifferentiated mesh.
Most AI 3D generators use "Image-to-3D" diffusion. Nova3D is "Prompt-to-Code" or "Image-to-Code." And by targeting Blender's API, the following is achieved:
- Logical Hierarchy: Parts are named and parented correctly.
- Surgical Edits: Change the "handle" without regenerating the "cup."
- Material Support: Proper PBR texture mapping rather than "baked" vertex colors.
Nova3D is a generation harness. You can swap between Claude 3.5, GPT-4o, or Gemini 1.5 Pro via the settings menu. The pipeline handles validation and execution regardless of which LLM is writing the code.
Unlike pure CSG/OpenSCAD systems which struggle with organic shapes, Nova3D leverages Blender's full suite of modifiers (subdivision, sculpting, booleans) to create high-fidelity models.
- Integrated Viewport: Built-in Three.js editor with transform tools, snapping, and material editing.
- Local Caching: Models are cached in-browser; view your history even after remote URLs expire.
- Reference Images: Attach a photo to guide the spatial logic of the generated script.
- Production Build:
flutter build web --releasefor static hosting.
-
Auth Loops: Always use
http://127.0.0.1:5555. Usinglocalhost:5555will cause Google Sign-In to fail due to strict OAuth origin policies. -
API Key not working / generations failing silently: Make sure your key is entered under Settings → API Key and that you've selected the matching provider (Gemini, OpenAI, or Anthropic). A key for the wrong provider will cause requests to fail immediately. Avoid Gemini free-tier keys — Nova3D's pipeline is token-intensive and free-tier Gemini quota is low enough that it may not function at all, even for a single generation. Use a paid-tier Gemini key, or switch to OpenAI or Anthropic.
-
Nothing happens after clicking Generate (no error shown): This usually means the client can't reach the backend. If you're running the default setup, make sure you haven't accidentally overridden
API_BASE_URLto a local address. The default build points tonova3d.xyz— no local backend is needed. -
Self-Hosting Backend: By default, this client communicates with the
nova3d.xyzhosted API (currently closed-source). If you are building your own backend, point the client at it by passing--dart-define=API_BASE_URL=https://your-api.comat build or run time. Do not set this to alocalhostaddress unless you have a fully configured local backend running — doing so will result in 400 errors on every generation attempt. If you're unsure, leave this flag out entirely and use the hosted service.
Built on the same engine powering FormaNova for specialized jewelry CAD.

.gif)
.gif)