A node-based visual programming editor built with Rust and egui.
Nōdle is a high-performance node editor implementation featuring a vertical flow design where connections flow from top to bottom. It provides an intuitive interface for creating and connecting nodes in a visual programming environment with GPU-accelerated rendering.
- Vertical Flow Design: Input ports on top, output ports on bottom
- GPU-Accelerated Rendering: High-performance node and connection rendering using wgpu
- Rich Node System: Extensible node factory with categories for Math, Logic, Data, 3D, USD, and more
- Intuitive Controls:
- Single-click to create connections between ports
- Multi-select nodes with box selection
- Drag to move selected nodes
- Freehand connection drawing with C key
- Cut connections with X key
- Navigation:
- Pan with middle mouse button or space+drag
- Zoom with mouse wheel (centered on cursor)
- Frame all nodes with F key
- Context Menu: Right-click to create new nodes
- Keyboard Shortcuts:
Delete- Remove selected nodes/connectionsESC- Cancel connection in progressCtrl/Cmd + Click- Multi-select nodesC- Freehand connection drawing modeX- Connection cutting modeF- Frame all nodes
- USD Integration: Comprehensive Universal Scene Description nodes for 3D workflows
- Workspace System: Context-specific workspaces (General, 3D, USD, MaterialX)
- Interface Panels: Parameter panels for node configuration with real-time updates
See GETTING_STARTED.md for detailed setup instructions.
-
Install Dependencies:
# macOS/Linux ./install.sh # Windows install.bat
-
Run Nodle:
cargo run --release --features usd
Nōdle uses a node-centric architecture where nodes drive everything through their metadata:
- Node Factory System: Self-registering nodes with rich metadata
- Modular Node Structure: Each node type has
mod.rs,logic.rs, andparameters.rs - GPU Rendering Pipeline: Efficient batch rendering of nodes and connections
- Interface Panel System: Automatic UI generation from node parameters
See DEVELOPER_GUIDE.md for detailed technical documentation.
- Math: Add, Subtract, Multiply, Divide
- Logic: AND, OR, NOT, Compare
- Data: Constant, Variable, Convert
- 3D Geometry: Cube, Sphere, Plane, Transform nodes
- USD: Complete USD pipeline nodes for industry-standard 3D workflows
- Lighting: Point, Directional, Spot lights
- Output: Print, Debug, Viewport
# Clone the repository
git clone https://github.com/bsundman/nodle.git
cd nodle
# Build and run
cargo build --release
cargo run --releaseusd- Enable USD (Universal Scene Description) support
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.