All notable changes to NDCell will be documented in this file.
The format is based on Keep a Changelog, except for minor stylistic changes to organize features and accomodate named versions. This project adheres to Semantic Versioning with respect to the Rust API for ndcell_core
, the NDCA API for ndcell_lang
, and the combined Lua/NDCA API for ndcell_ui
, the main application.
- Crash on startup with an NVIDIA GPU
- 3D rendering performance (5x-20x FPS)
- Application icon for Windows, macOS, and Linux
- Disabled console window on Windows
- Updated Linux build to
libffi7
- Missing executable permission on macOS and Linux
- Selection rendering glitch (#9)
- Selection pasting not stopping simulation (#10)
- Crash on placing grid plane with an NVIDIA GPU
- Crash on startup with an NVIDIA GPU
- Simulation
- 3D rendering and simulation
- Advance one generation (Space)
- Advance one step (Tab)
- Place grid plane on cell face (E)
- Selection
- Added edge resize indicator
- Cancel selection drag (Esc)
- Navigation
- 3D orbit (right mouse drag)
- 3D pan (↑/←/↓/→, W/A/S/D, or middle mouse drag)
- 3D pan horizontally (middle mouse drag with Shift)
- Zoom (right mouse drag with Ctrl)
- GUI
- Load/save file
- Simulation
- Cells align better to pixel boundaries when zoomed out, appearing crisper
- Optimized 2D rendering of empty areas
- Selection
- Selection edge resizing now clamps to the opposite corner
- GUI
- Disabled rounded window borders
- Display "RUNNING" or "STEPPING" accordingly instead of "SIMULATING"
- Relabeled "Trigger garbage collection" button to "Clear cache"
- Replaced inaccurate maximum simulation speed with average simulation time.
- Tweaked colors
- Changing the step size while the simulation is running now takes effect immediately (#6)
- Selected cells no longer appear to be tiled infinitely
- Touchpad scrolling now zooms in/out at a reasonable pace
- Crash when pressing an exotic mouse button
- Crash when selecting cells
- Simulation
- Display and simulate unbounded 2D Conway's Game of Life using HashLife algorithm
- Toggle simulation (Enter)
- Double/halve step size (+/-)
- Highlight with crosshairs on hovered cell
- Blue for drawing
- White for selecting
- Navigation
- 2D pan (↑/←/↓/→, W/A/S/D, or right/middle mouse drag)
- Zoom (scroll wheel or Q/Z)
- Pan/zoom faster while holding Shift
- Reset view (Ctrl+M)
- Fit pattern in view (Ctrl+F)
- Drawing
- Toggle cells (left mouse click/drag)
- Select numbered cell state (0-9)
- Cycle selected cell state ([/])
- Cancel drawing (Esc)
- Selection
- Select rectangle (left mouse drag with Ctrl)
- Select all (Ctrl+A)
- Resize selection rectangle (left mouse drag with Ctrl+Shift)
- Resize selection edge (left mouse drag from selection edge)
- Resize selection to cursor (left mouse click/drag with Ctrl+Shift)
- Move selected cells (left mouse drag from selection)
- Duplicate selected cells (left mouse drag with Ctrl from selection)
- Move selection (left mouse drag with Shift from selection)
- Delete selected cells (Delete)
- Deselect (Esc)
- Copy/paste
- Cut/copy selection as RLE (Ctrl+X/C)
- Cut/copy selection as Macrocell (Ctrl+Shift+X/C)
- Paste RLE or Macrocell (Ctrl+V)
- Undo history
- Undo (Ctrl+Z)
- Redo (Ctrl+Y or Ctrl+Shift+Z)
- Reset (Ctrl+R)
- GUI
- Simulation breakpoint
- Display framerate (with color)
- Display estimated maximum simulation update rate (with color)
- Display generation count
- Display total population
- Display view scale and position
- Display cursor position
- Display estimated HashLife node pool memory usage
- Display selected cell state