Skip to content
/ Nodo Public

3D procedural modeling tool with visual node editor. Create meshes, perform boolean operations, and export models.

License

Notifications You must be signed in to change notification settings

dehnda/Nodo

Repository files navigation

Nodo

Nodo Logo

License: MIT CI codecov Platform C++20 Qt CMake Conan

A professional node-based procedural 3D modeling tool with real-time workflows and parametric control.

⚠️ Early Development: Nodo is actively being developed. Features and APIs may change. Use for experimentation and provide feedback!

Nodo Studio Interface

🎯 Vision

Nodo brings Houdini-inspired procedural modeling to everyone:

  • 🔥 Visual node-based workflow - Connect nodes to build complex geometry
  • ⚡ Real-time updates - See changes instantly as you work
  • 🧠 Expression system - Parameter-driven workflows with math expressions
  • 🎯 Production-ready - 44+ nodes for complete modeling workflows

✅ What's Included

🎨 44+ Production Nodes

  • Generators: Box, Sphere, Cylinder, Torus, Grid, Line
  • Modifiers: Extrude, Subdivide, Smooth, Noise, Bevel, Mirror, Bend, Twist
  • Transform: Transform, Array, Copy to Points, Scatter, Align
  • Boolean: Union, Intersection, Difference, Merge, Split
  • Attributes: Wrangle (expressions), Color, Normal, UV Unwrap
  • Groups: Create, Delete, Combine, Promote, Expand, Transfer
  • Advanced: Geodesic, Remesh, Parameterize, Curvature, Repair
  • Utility: Switch, Null, Output, File I/O

⚡ Expression System

  • Parameter expressions: $F * 0.1, ch("../box/size")
  • Math functions: sin(), cos(), rand(), noise()
  • Channel references: Link parameters across nodes
  • Graph parameters: Expose controls for entire graphs

🔧 Professional Features

  • Real-time preview: See changes as you modify parameters
  • Undo/Redo: Full history with Ctrl+Z/Ctrl+Y
  • Keyboard shortcuts: Professional workflow navigation
  • File format: OBJ import/export with full attribute support
  • CLI tool: Headless batch processing (nodo_cli)

🚀 Development Status

Nodo is in active development with a stable core feature set.

See ROADMAP.md for upcoming features and long-term vision.

🛠️ Build Instructions

Quick Start

# 1. Install Conan
pip install "conan>=2.0"

# 2. Clone and build
git clone https://github.com/dehnda/nodo.git
cd nodo
conan install . --build=missing
cmake --preset conan-debug
cmake --build --preset conan-debug --parallel

# 3. Run the application
./build/Debug/nodo_studio/nodo_studio

Full Build Documentation

See BUILD.md for complete instructions including:

  • Platform-specific setup (Linux, Windows)
  • Debug vs Release configurations
  • Enabling tests
  • Troubleshooting common issues
  • Windows release packaging

📁 Architecture

include/nodo/
├── core/           # Core data structures (Mesh, Point, Vector)
├── geometry/       # Mesh generation and boolean operations
├── gpu/            # GPU acceleration (OpenGL compute shaders)
├── nodes/          # Node-based procedural system
└── io/             # Import/export functionality (OBJ, future: STL, glTF)

src/
├── core/           # Core implementations
├── geometry/       # Geometry processing implementations
├── gpu/            # GPU compute implementations
├── nodes/          # Node system implementations
└── io/             # I/O implementations

examples/           # Usage examples and demos
tests/              # Unit tests (44 passing tests)

📋 Project Documentation

Comprehensive documentation is available:

📄 License

MIT License - Copyright (c) 2025 Daniel Dehne

This project is open source and free to use. See LICENSE for full details. Third-party components are used under their respective licenses (see THIRD_PARTY_LICENSES.txt).

About

3D procedural modeling tool with visual node editor. Create meshes, perform boolean operations, and export models.

Resources

License

Stars

Watchers

Forks

Packages

No packages published