Skip to content

Releases: ParkerBritt/enzo

v0.4.1

Choose a tag to compare

@github-actions github-actions released this 13 Sep 04:00
  • Fixed windows default.yml bug

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 13 Sep 02:27
image

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

Choose a tag to compare

@ParkerBritt ParkerBritt released this 14 Aug 00:09

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)

enzo_screenshot

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

Choose a tag to compare

@ParkerBritt ParkerBritt released this 13 Aug 23:26

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

Choose a tag to compare

@ParkerBritt ParkerBritt released this 28 Mar 18:19

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