项目介绍

RareSense/Nova3D 是一个托管在 GitHub 上的开源项目,主要使用 Dart 编写,目前获得 392 个 Star、43 次 Fork。

仓库全名
RareSense/Nova3D
Star 数
392
Fork 数
43
未关闭 Issue
2

README 摘要

Nova3D A tool that generates 3D objects with separate, editable parts - instead of a single merged blob website · discord · twitter/X · github issues What is Nova3D? 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…

完整内容见 GitHub 原始 README 或本页 。

常见问题

Nova3D 用什么语言开发?

主要使用 Dart 编写,目前有 392 个 Star。

如何获取 Nova3D 的源码?

可以直接克隆仓库:git clone https://github.com/RareSense/Nova3D.git;安装与运行步骤见仓库 README。

Nova3D 最近还在维护吗?

仓库最近一次更新为 6月15日,当前有 2 个未关闭 Issue;Star 数为 392,可作为社区活跃度的参考。

关于

GitHub 原始描述(英文)

Editable, part-aware 3D generation from text or reference images. Open-source client for nova3d.xyz.

描述取自 GitHub 官方 API,保持仓库作者书写的原文。

简要分析

热度分
870
价值分
287
活跃状态
活跃

语言占比

CSS
Dart
HTML
JavaScript
Python

README

Nova3D

A tool that generates 3D objects with separate, editable parts - instead of a single merged blob

website · discord · twitter/X · github issues


  

What is Nova3D?

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.


Prerequisites

The client is built with Flutter/Dart. If you don’t have Flutter 3.24+ installed, set it up first:

💻 macOS

Install Flutter via Homebrew:

brew install --cask flutter
flutter doctor
🪟 Windows

Install Flutter via Chocolatey (run PowerShell as Administrator):

choco install flutter

Then close and reopen your terminal, and verify:

flutter doctor

Don’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 doctor

Once flutter doctor shows no blocking issues, continue with Quick Start below.

Quick Start

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
  1. Open http://127.0.0.1:5555
  2. Sign in (Google/Email).
  3. Settings → Add your API Key (OpenRouter, OpenAI, Anthropic, or Gemini).
  4. Enter a prompt and generate.

Demo

Editable parts — quick look ☝️Prompt: Make a washing machine with detailed internal mechanics

Comparison

Nova3D vs TRELLIS vs Hunyuan3D ☝️Side-by-side comparison with TRELLIS and Hunyuan3D

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 vs PartPacker vs Tripo Segmentation ☝️Part-aware comparison with NVIDIA PartPacker and Tripo

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.


Technical Philosophy

1. Script-Native vs. Mesh-Native

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.

2. Model Agnostic

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.

3. Precision + Organic Flow

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.


Features

  • 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 --release for static hosting.

Troubleshooting

  • Auth Loops: Always use http://127.0.0.1:5555. Using localhost:5555 will 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 (OpenRouter, OpenAI, Anthropic, or Gemini). 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 OpenRouter, 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_URL to a local address. The default build points to nova3d.xyz — no local backend is needed.

  • Self-Hosting Backend: By default, this client communicates with the nova3d.xyz hosted 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.com at build or run time. Do not set this to a localhost address 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.

评论

暂无评论