Releases: ParkerBritt/enzo
Release list
v0.4.1
v0.4.0
Refactor node packaging, setup superbuild/ci automatic builds for windows and linux, improve parameter variant systems.
Engine
- Nodes load as packages, each with a YAML manifest describing its inputs and parameters
- Node types are grouped into namespaces
- Networks can hold child networks, with scoped paths that can be relative
- Inputs that accept any number of connections
- Transform order option on the Duplicate node
- Looking up an attribute or group by name reuses the existing one when it's already there
Nodes
- Sphere, Cylinder and Duplicate nodes
- Normal node with weighted normals
- Attribute Create node
- Copy to Points orients copies from point normals
- Merge takes any number of inputs through a single multi-input
- Scale parameters on the Transform node
Parameters
- Parameter panel scrolls when its contents are taller than the window
- Divider parameter for grouping controls
- Dial style for angles, with clamped rotation
- XYZ fields with per-axis colours, now a style that any vector parameter can use
- Attribute picker style for string parameters, with a message shown when there are no attributes
- Parameter styles can take their options from other parameters
Network Editor
- Drag to select multiple nodes
- Drop a node onto a connection to insert it, and Shift-drag to disconnect a node
- Shift+Enter creates a node chained to the selected one
- R sets the display flag on the selected node
- Placeholder text in an empty network
Viewport
- Smoothed normals
- Wireframe toggle
Interface
- Higher contrast colours and drop shadows across the network, parameter panel and spreadsheet
- Open a scene file from the command line
Platform
- Linux AppImage and Windows builds produced by CI, with a startup smoke test
- Dependencies built from source by a superbuild instead of vcpkg
- Relicensed from GPL to MIT, with the GPL CGAL code removed
v0.3.0 - GUI Rewrite
This release is a complete rewrite of Enzo's GUI, replacing the entire Qt Widgets UI with a new QML-based UI. It brings GPU-shader-driven rendering for the network view, a cleaner and more consistent look, and a proper YAML-driven theming system.
Overall you'll see a significant improvement in the already decent GUI performance, more modern UI, and a better language for the frontend (QML)
Interface
- Rebuilt the main window in QML, with a menu bar (including submenus), a resizable splitter between panels, and popups and context menus for common actions
- Added a tab-triggered menu for creating nodes directly in the network
Viewport & Network
- Added a pannable, zoomable network view with clamped zoom, an animated background dot shader, and node and link rendering with drop shadows and zoom-aware borders and labels
- Ported the 3D viewport into the new interface
Nodes & Connections
- Added node selection, dragging, deletion, multi-select drag with undo/redo, and a "primary" node concept
- Added click-to-connect node links with port hitboxes and closest-port detection, along with link deletion, disconnect, and redirect
Parameters
- Added a parameter panel driven by node data, with dropdowns, sliders with direct typing, a context menu, and copy/paste of values and expressions
- Added an expression editor for typing and editing per-parameter expressions
- Added a ramp parameter with header controls, tooltips, and a "set all" action across ramp points
Spreadsheet
- Added a spreadsheet panel that displays a node's output packet, with a primitive panel and per-class icons, tracking the selected node
Theming
- Added a YAML-driven theme system as a single source of truth for colors and node dimensions, with per-component overrides
v0.2.0
Adds multi-primitive scenes, an expression engine, undo/redo, save/load, and five new geometry nodes, alongside a round of UI polish.
Primitives & Selection
- Geometry renamed to primitive, with scenes now supporting multiple primitives, including camera prims and matrix attributes
- Point, vertex, and face deletion with primitive defragmentation
- Group-based, wildcard, and range selection, including inversion
Expressions
- Expression engine (daslang) with custom
prm()functions - Expressions on XYZ, int, and string parameters, with dependent nodes recooking automatically when expression inputs change
Undo/Redo & Persistence
- Undo/redo for node creation/deletion, connections, and parameter edits (float, int, bool, string, selection, display flag)
- Scene save/open, open recent, and new-file support via cereal-based serialization
Nodes
- Circle, sweep, extrude, boolean (via manifold), path, copy to points
- Merge node reimplemented with primitive support
Parameters
- Dropdown and ramp (multi control point, bspline interpolation) parameter types
- Parameter groups, hiding/disabling, and tooltips
Interface
- Popup list replaces the tab menu, with scroll and selection animations
- Node placement/deletion, socket, and resize animations
- Unified styling via shared style constants
- Wireframe viewport overlay
Platform
- Bumped to C++20
- GPL v3 license
v0.1.0
Initial release of a node-based procedural geometry editor built on Qt/OpenGL.
Engine
- Attribute-based geometry model (points, faces)
- Node graph with dependency tracking and a dirty/cook system for incremental updates
- Plugin system for registering new operator/node types
Nodes
- Grid, cube, wave surface, basic merge
Interface
- Network view with pan/zoom, drag-connect edges, floating edge preview, edge deletion
- Tab menu with search and keyboard navigation for placing nodes
- Parameter panel: float, string, XYZ, int slider, bool switch
- Geometry spreadsheet (read-only attribute view)
Viewport
- OpenGL point/line/face rendering, OBJ import
- Camera controls, grid with fade/depth testing, antialiasing
Packaging
- CPack: RPM, tar.gz, Flatpak
- Catch2 tests and TBB-based benchmarks