{
  "markdown": "<div align=\"center\">\n\n<img src=\"docs/media/nova3d-logo.png\" width=\"132\" alt=\"Nova3D\" />\n\n**Code-native 3D generation: assets are executable programs, not opaque meshes.**\n\n<a href=\"https://nova3d.xyz\"><img src=\"https://api.iconify.design/lucide:globe-2.svg?color=%2358a6ff\" width=\"16\" height=\"16\" align=\"center\" alt=\"Website\" /> website</a> · <a href=\"https://app.nova3d.xyz\"><img src=\"https://api.iconify.design/lucide:box.svg?color=%2358a6ff\" width=\"16\" height=\"16\" align=\"center\" alt=\"App\" /> app</a> · <a href=\"https://arxiv.org/abs/2607.22738\"><img src=\"https://api.iconify.design/simple-icons:arxiv.svg?color=%23b31b1b\" width=\"16\" height=\"16\" align=\"center\" alt=\"Paper\" /> paper</a> · <a href=\"https://discord.gg/QEH8mzcwdR\"><img src=\"https://api.iconify.design/simple-icons:discord.svg?color=%235865f2\" width=\"16\" height=\"16\" align=\"center\" alt=\"Discord\" /> discord</a> · <a href=\"https://x.com/nova3d_ai\"><img src=\"https://api.iconify.design/simple-icons:x.svg?color=%238b949e\" width=\"16\" height=\"16\" align=\"center\" alt=\"X\" /> X</a> · <a href=\"https://github.com/RareSense/Nova3D/issues\"><img src=\"https://api.iconify.design/octicon:issue-opened-16.svg?color=%2358a6ff\" width=\"16\" height=\"16\" align=\"center\" alt=\"Issues\" /> issues</a>\n\n<br/>\n\n<img src=\"app/assets/gifs/nova3d/drill_machine.gif\" width=\"32%\" />&nbsp;<img src=\"app/assets/gifs/nova3d/escalator.gif\" width=\"32%\" />&nbsp;<img src=\"app/assets/gifs/nova3d/oven.gif\" width=\"32%\" />\n\n</div>\n\n## What is Nova3D?\n\nNova3D generates 3D assets as **executable construction procedures**. Instead of emitting a single fused mesh, the pipeline writes Blender-native Python that compiles to a structured GLB with **named, separately addressable parts**, a real assembly hierarchy, joint pivots, and PBR materials.\n\nThe asset's source of truth is the program; the mesh is just its compiled output. Because anything coded is programmable, every generated object is born **inspectable, addressable, editable, and animatable**; properties a baked mesh cannot natively expose.\n\nThis is architecturally different from diffusion-based generators (Meshy, Tripo, Rodin), which extract a single merged mesh with no part boundaries, and from CSG/OpenSCAD systems, which guarantee solids but cap out on organic shapes, hierarchy, and materials. Nova3D uses Blender's scene graph as the native representation, a strict superset of both.\n\n\n## Getting started\n\nThe web client lives in [`app/`](app/) and connects to the hosted Nova3D service; no local backend required. See **[`app/README.md`](app/README.md)** for prerequisites, setup, features, and troubleshooting.\n\n\n## Repository structure\n\nThis repository is the home for Nova3D's open clients and integrations. The hosted generation backend is (currently) closed-source.\n\n```\nNova3D/\n├── app/              # Flutter/Dart web client  ·  see app/README.md\n├── mcp/              # Nova3D MCP server  ·  see mcp/README.md\n├── blender-plugin/   # Blender add-on  ·  see blender-plugin/README.md\n├── claude-skills/    # Claude skills (coming soon)\n├── docs/             # architecture & the \"3D as code\" thesis (coming soon)\n└── examples/         # gallery of generated assets + their source programs (coming soon)\n```\n\n> Surfaces are being moved in one at a time. Today the **client app** and\n> **Blender add-on** live in [`app/`](app/) and [`blender-plugin/`](blender-plugin/).\n\n## Demo\n\n<div align=\"center\">\n\n<a href=\"https://www.youtube.com/watch?v=309zNw0JETU\"><img src=\"docs/media/demo_one_shot.png\" width=\"100%\" alt=\"Nova3D one-shot 3D model generation demo\" /></a>\n\n☝️ One shot: **3D models with 4K PBR textures, ready for games, animation, VFX, and more with Nova3D**\n\n</div>\n\n## Comparison\n\n[![Nova3D vs TRELLIS vs Hunyuan3D](https://i.imgur.com/QAAgIQ8.png)](https://www.youtube.com/watch?v=iL_NX_hBq9k)\n\n☝️ Side-by-side with TRELLIS and Hunyuan3D. Nova3D is optimized for **structured asset generation**, but the advantage is not limited to multipart editing; it also shows stronger single-asset fidelity: cleaner silhouette control, sharper feature delineation, and more coherent surface transitions. **Explicit part structure is an added capability, not a quality tradeoff.**\n\n[![Nova3D vs PartPacker vs Tripo Segmentation](https://i.imgur.com/wWjVuRr.png)](https://www.youtube.com/watch?v=msGZs4EMnvs)\n\n☝️ Part-aware comparison with NVIDIA PartPacker and Tripo. Nova3D preserves discrete components as independently addressable objects with stable boundaries, clearer instance separation, and better **edit locality**; assets stay actionable after generation (inspect, regenerate, restyle, articulate, export) without collapsing back into one undifferentiated mesh.\n\n### Visual fidelity: same prompt vs the mesh-native generators\n\n<div align=\"center\"><img src=\"docs/media/comparison_slider.gif\" width=\"100%\" alt=\"Animated textured and wireframe comparison: Nova3D vs Meshy, TRELLIS.2, and TripoSG\" /></div>\n\n*Textured, as delivered: Nova3D vs the mesh-native generators (Meshy, TRELLIS.2, TripoSG).*\n\n*Wireframe (mesh topology). Nova3D builds clean parts; internal structure is visible; the diffusion models output dense isosurface meshes.*\n\n## Anatomy of a generation\n\n<div align=\"center\"><img src=\"docs/media/anatomy_ring.jpg\" width=\"100%\" alt=\"Measured gold engagement ring generated by Nova3D\" /></div>\n\n☝️ Prompt: Create a gold engagement ring with an **oval center stone measuring 6.82 × 8.75 × 4.40 mm**, raised prong setting, and small pavé diamonds along the upper band. Use a **17.00 mm inner diameter (US size 6.5)**, **6.22 mm crown height**, **20.96 mm overall width**, and **26.42 mm overall height**.\n\nEvery visually distinct component is its own named, editable mesh, grouped into named sub-assemblies, and prompt-stated counts and dimensions hold up when measured back from the result.\n\n### Built as parts, not segmented after the fact\n\n<div align=\"center\"><img src=\"docs/media/segmentation_explode.gif\" width=\"78%\" alt=\"Four assets exploded into their parts\" /></div>\n\n*Nova3D never builds a fused mesh in the first place; every component is generated as its own named, watertight part, so any piece can be selected, retextured, replaced, or rigged on its own. The others can only approximate this afterward: PartCrafter returns a handful of unnamed chunks, and CubePart must be handed the part names, then slices a finished mesh into capped, approximate regions. *\n\n## Assembly hierarchy\n\n<div align=\"center\"><img src=\"docs/media/assembly_hierarchy.gif\" width=\"100%\" alt=\"Building exported as a labeled assembly hierarchy\" /></div>\n\n*Parts don't just have names; they're wired into a labeled assembly tree with a joint pivot at every articulation point. This robot arm exports as a depth-7 kinematic chain: rotating any pivot moves its whole subtree. The program writes that tree itself; mesh generators export a flat list with nothing to grab or rig.*\n\n## Articulation\n\n<div align=\"center\"><img src=\"docs/media/articulation_crane.gif\" width=\"100%\" alt=\"Tracked crane articulating, geometry frozen\" /></div>\n\n*Rigging is an additive code pass: joints are added at real pivots referencing parts the program already named; the existing geometry never moves.*\n\n## UV-ready from the source\n\n<div align=\"center\"><img src=\"docs/media/uv_from_code.png\" width=\"100%\" alt=\"Auto-generated clean, packed UV atlas for a generated asset\" /></div>\n\n*Each part gets its own UV chart, auto-packed into one clean, non-overlapping atlas grouped by sub-assembly.*\n\n## Technical philosophy\n\n**1. Script-native, not mesh-native.** Most AI 3D generators do image-to-3D diffusion. Nova3D is prompt-to-code / image-to-code, targeting Blender's API, which yields a logical named hierarchy, surgical edits (change the handle without regenerating the cup), and proper PBR materials instead of baked vertex colors.\n\n**2. Model-agnostic.** Nova3D is a generation harness. Swap providers (OpenRouter, OpenAI, Anthropic, Gemini) via the settings menu; the pipeline handles validation and execution regardless of which LLM writes the code.\n\n**3. Precision + organic flow.** Unlike pure CSG/OpenSCAD systems that struggle with organic shapes, Nova3D leverages Blender's full modifier suite (subdivision, sculpting, booleans) for high-fidelity models.\n\n\n## License\n\n[MIT](LICENSE) © RareSense. The clients and integrations in this repository are open-source; the hosted generation backend is proprietary.\n\n<p align=\"center\">\n  <small>Built on the same engine powering <b><a href=\"https://formanova.ai\">FormaNova</a></b> for specialized jewelry CAD.</small>\n</p>\n",
  "bytes": 8554,
  "sha": "292daf0204f7ed74847fce091ca8d0f13695fa3a0a59dd154c18587b0b0f4227",
  "repo_slug": "raresense/nova3d",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_raresense_nova3d_5958f214/readme"
}