UStackUStack
Nova3D icon

Nova3D

Nova3D es un cliente open-source que crea activos 3D editables y por partes desde prompts de texto o imágenes de referencia con un pipeline Blender Python.

Nova3D

¿Qué es Nova3D?

Nova3D es un cliente open-source para nova3d.xyz que genera activos 3D como procedimientos de construcción ejecutables en lugar de una malla única y fusionada. Produce scripts Python nativos de Blender y devuelve un GLB estructurado donde las partes están nombradas y son direccionables por separado.

El propósito principal de este cliente es conectarse al pipeline Nova3D alojado (por defecto) para que puedas generar salidas 3D editables y conscientes de partes desde prompts de texto o imágenes de referencia.

Características principales

  • Salidas 3D editables y conscientes de partes: El pipeline genera un GLB estructurado con partes nombradas y direccionables por separado, diseñado para ediciones dirigidas (p. ej., cambiar una parte sin regenerar todo).
  • Generación nativa de scripts (prompt-to-code / image-to-code): En lugar de “image-to-3D” estilo difusión que produce una malla fusionada única, Nova3D genera scripts Python de Blender que representan el procedimiento de construcción.
  • Usa el grafo de escena de Blender como representación nativa: El cliente alinea su modelo de salida con el grafo de escena de Blender, que soporta jerarquías lógicas y flujos de edición a nivel de escena.
  • Flujo de trabajo de cliente agnóstico a modelos/LLM: El arnés de generación puede cambiar entre backends LLM mediante ajustes (p. ej., Claude 3.5, GPT-4o o Gemini 1.5 Pro), con validación/ejecución manejada por el pipeline.
  • Editor de viewport web integrado: Incluye un editor Three.js incorporado con herramientas de transformación, snapping y edición de materiales.
  • Guía con imágenes de referencia: Permite adjuntar una foto para guiar la lógica espacial del script generado.
  • Caché local en el navegador: Los modelos se almacenan en caché en el navegador para que puedas ver tu historial incluso después de que expiren las URLs remotas.

Cómo usar Nova3D

  1. Ejecuta el cliente localmente: Clona el repositorio, instala dependencias (flutter pub get) e inicia la UI web local.
    • Las notas de inicio rápido indican que el puerto 5555 es requerido para la autorización de redirección OAuth.
  2. Inicia sesión: Abre la URL local y luego inicia sesión con Google o Email.
  3. Añade una clave API en ajustes: El cliente soporta añadir claves API para OpenAI, Anthropic o Gemini.
  4. Proporciona entrada y genera: Ingresa un prompt (y opcionalmente adjunta una imagen de referencia) y ejecuta el flujo de generación.
  5. Edita y revisa resultados: Usa el editor de viewport integrado para transformaciones/snapping/edición de materiales, y confía en el caché local para revisitar generaciones previas.

Para implementar una compilación de producción para alojamiento estático, el repositorio incluye un comando para compilar la app web de Flutter (flutter build web --release).

Casos de uso

  • Generación de activos editables para flujos que requieren jerarquía: Genera modelos 3D donde las partes están nombradas y parentadas para que puedas ajustar componentes individuales sin regenerar el resultado completo.
  • Ideación 3D impulsada por prompts o guiada por fotos: Usa prompts de texto o adjunta imágenes de referencia para influir en la lógica espacial de los scripts de construcción generados.
  • Iteración de materiales con flujo de mapeo orientado a PBR: Trabaja con salidas diseñadas para soportar mapeo de materiales en lugar de depender de colores de vértices horneados.
  • Revisión y ajuste rápidos en el navegador: Usa el editor de viewport Three.js integrado (herramientas de transformación, snapping y edición de materiales) sin salir del cliente.
  • Navegación local de generaciones previas: Aprovecha el caché en el navegador para mantener el historial de visualización incluso cuando expiran las URLs remotas.

Preguntas frecuentes

  • ¿Nova3D genera una malla fusionada única? No. El pipeline produce un GLB estructurado con partes direccionables por separado, generado desde scripts Python nativos de Blender.

  • ¿Puedo usar diferentes proveedores LLM? Sí. El cliente es agnóstico a modelos, con ajustes que permiten cambiar entre backends como Claude 3.5, GPT-4o o Gemini 1.5 Pro.

  • ¿Qué configuración local se necesita para iniciar sesión? Las notas de inicio rápido indican que el puerto 5555 es requerido para la autorización de redirección OAuth, y advierten específicamente que usar localhost:5555 puede hacer fallar el inicio de sesión con Google debido a políticas de origen OAuth.

  • ¿Adónde envía el cliente las solicitudes de generación por defecto? Por defecto, se comunica con la API alojada de nova3d.xyz. Se puede dirigir a un backend personalizado estableciendo API_BASE_URL mediante --dart-define.

  • ¿Hay forma de influir en la generación con una imagen? Sí. El cliente soporta imágenes de referencia para que puedas adjuntar una foto y guiar la lógica espacial del script generado.

Alternativas

  • Herramientas de difusión imagen-a-3D que generan una sola malla fusionada: Estas suelen centrarse en producir un resultado geométrico consolidado único, lo que difiere de las salidas editables y por partes de Nova3D.
  • Sistemas estilo OpenSCAD/CSG enfocados en modelado sólido: Los enfoques de esta categoría pueden priorizar sólidos manifold, pero sacrifican flexibilidad en formas orgánicas y editabilidad detallada de jerarquía/materiales.
  • Herramientas prompt-a-CAD o CAD procedural: Si tu objetivo principal es construcción procedural editable, busca herramientas que admitan flujos de trabajo tipo script o paramétricos en lugar de salidas de mallas puramente generativas.
  • Herramientas independientes de modelado/edición 3D combinadas con resultados procedurales importables: Para flujos donde ya usas Blender u otras herramientas DCC, puedes tratar Nova3D como el paso de generación y refinar las salidas en un entorno de modelado—aunque la diferencia clave es la generación de scripts nativos de Blender y estructura GLB por partes de Nova3D.