Skip to content

Releases: vipenzo/ridley

v1.10.0 — 3D Fillet & Manual Export

25 Mar 10:00

Choose a tag to compare

Highlights

3D Fillet (new)

Round edges on 3D meshes with fillet, complementing the existing chamfer:

(-> mesh (fillet :top 3 :segments 8))       ; Rounded top edges
(-> mesh (fillet :all 2))                   ; All sharp edges
(-> mesh (fillet :top 3 :blend-vertices true)) ; With spherical corner blend

Per-edge concave cutters with quarter-circle arc cross-section. Optional vertex sphere blending at corners where 3+ faces meet.

3D Chamfer improvements

  • Continuous strip mesh for faster CSG (single mesh-difference)
  • Turtle-oriented selectors: :top :bottom :up :down :left :right :all

Manual Export

Generate downloadable Markdown manuals with screenshots:

(export-manual-en)    ; Download Manual_en.md
(export-manual-it)    ; Download Manuale_it.md

Python script for batch export with images:

python3 scripts/export-manual.py --lang en      # With screenshots
python3 scripts/export-manual.py --check        # Non-regression test

Other

  • Improved capture scene lighting and camera framing for better screenshots
  • New examples: multiboard connector, pipe clamp
  • Shell API unified: :style keyword replaces separate functions
  • Pattern tiling and decorated shell caps (voronoi, grid)
  • fillet-shape, chamfer-shape for 2D corner operations
  • capped shape-fn for loft cap rounding

v1.9.0: AI Describe improvements

19 Mar 09:12

Choose a tag to compare

What's New

  • /ai-describe, /ai-ask, /ai-end — slash command variants for describe sessions, more consistent and screen-reader friendly
  • Per-object bounding boxes — metadata now includes bounds for each registered object, exposed as {{object-bounds}} macro for custom prompts
  • Improved capture rendering — distinct high-contrast palette colors per object, MeshStandardMaterial with better lighting, 1024×1024 resolution
  • Prompt Editor fix — proper dialog container with click-outside-to-close and Escape key support
  • Documentation — updated describe-spec.md and translated spec-prompt-editor-and-history.md to English

v1.8.0

05 Mar 12:13

Choose a tag to compare

What's New

AI Describe — Accessibility Feature

  • (describe) command: AI-powered verbal descriptions of 3D geometry for blind and low-vision users
  • (ai-ask) follow-up questions with full conversation history
  • AI self-refinement: the AI can request additional views and cross-sections automatically
  • Multi-provider support: OpenAI, Google Gemini, Anthropic Claude, Ollama
  • Google Gemini added to Settings UI with model selector

View Capture & Export

  • Offscreen rendering of orthographic and perspective views
  • Cross-section slicing at arbitrary axis-aligned planes (render-slice)
  • Single-image download (save-image) and multi-view ZIP export (save-views)

Shell & Woven Shell

  • shell shape-fn: variable-thickness hollow extrusion with openings
  • woven-shell: orthogonal mode, combined crossings
  • Comprehensive tests for shell shape-fns

Other Improvements

  • Accessibility: audio feedback, ARIA attributes, screen reader support
  • Warp fix: triangle-volume intersection, midpoint subdivision, crease normals
  • Manual: gallery updates, voronoi hi-res, Italian titles

v1.7.0: Shell & Woven Shell

04 Mar 15:57

Choose a tag to compare

Shell & Woven Shell Shape Functions

shell — Variable-thickness hollow extrusion

  • Create hollow shapes with per-point wall thickness control
  • Thickness function (fn [angle t] -> 0..1) for fine-grained control
  • Built-in patterns: shell-bands, shell-grid, shell-voronoi, shell-hex
  • Composes with other shape-fns (tapered, twisted, etc.)

woven-shell — Radial offset for true over/under weaving

  • Adds radial offset per point, shifting wall center outward or inward
  • Built-in diagonal weave with configurable :strands, :width, :lift
  • :mode :orthogonal for orthogonal weave pattern
  • Custom fn returning {:thickness v :offset o} for full control

Manual & Gallery

  • Hamiltonian Cycle gallery page — community contribution by u/Eternally_Monika demonstrating backbite algorithm + mesh generation
  • Voronoi examples updated to 256 resolution with performance note
  • Fixed reduce mesh-union example (macro wrapping note)
  • Improved Italian translations for Attach pages

Bug Fixes

  • Fixed warp: triangle-volume intersection, midpoint subdivision, crease normals

v1.6.0: Accessibility & Screen Reader Support

26 Feb 14:31

Choose a tag to compare

Accessibility & Screen Reader Support

Audio Feedback

  • Success sound: short high-pitched ping (880Hz sine wave) on successful evaluation
  • Error sound: short low buzz (220Hz square wave) on evaluation error
  • Works for both Run button (definitions) and Enter in the REPL
  • Enabled by default; toggle in Settings > Accessibility or via (set-audio-feedback! true/false)

Screen Reader (JAWS/NVDA) Improvements

  • aria-live="polite" on REPL output — new results are announced automatically
  • role="alert" + aria-live="assertive" on error panel — errors announced immediately
  • aria-label on Run button and REPL input field
  • Run success confirmation in REPL output (e.g., "Evaluation successful: 3 meshes") so screen readers announce it
  • (run-definitions!) — evaluate definitions from the REPL without needing to find the Run button
  • Escape key exits the CodeMirror editor, returning to browse mode for page navigation

v1.5.0 — Version Display, SVG/STL Import, README Update

24 Feb 09:52

Choose a tag to compare

What's New

  • Version display — build version shown in viewport toolbar, injected at build time
  • SVG import — parse SVG paths into 2D shapes for extrusion/revolution
  • STL import — decode base64-encoded mesh data
  • Library panel improvements — enhanced library management UI
  • README overhaul — updated to reflect current feature set

Since v1.1.0 (last deployed)

Includes all changes from v1.2.0–v1.4.1: turtle scopes, tweak system, warp deformation, viewport picking, macro refactoring, animation with rigid transforms, optimized CSG pipeline, and more.

v1.1.0 - Smart Bloft & Bezier Routing

10 Feb 13:36

Choose a tag to compare

What's New

Smart bezier path routing

  • Extrude and loft now automatically detect when a bezier path would cause self-intersecting geometry (by comparing the path's minimum radius of curvature against the shape radius)
  • Only tight curves fall back to bloft; gentle bezier paths use the faster standard extrude/loft
  • Console message when auto-fallback triggers for easier debugging

Bloft improvements

  • Parallel transport framing for bezier paths
  • Adaptive ring sampling with hull bridging for self-intersecting sections
  • Skips degenerate rings (radius ≈ 0) with warning
  • Fallback to mesh concatenation when manifold union fails
  • bloft now works on any path, not just bezier-flagged ones

Tree union & other fixes

  • Tree-based CSG union for better performance
  • Adaptive bloft ring count based on path resolution

v1.0.0

09 Feb 19:55

Choose a tag to compare

Ridley v1.0.0

Major release with substantial improvements to the 2D shape boolean system and loft pipeline.

Highlights

  • Multi-shape XORshape-xor now correctly returns a vector of shapes for disconnected regions (e.g. two crossing rectangles produce a cross with center cut out)
  • Multi-shape pipelineshape-offset, loft, bloft, revolve, and stamp all accept vectors of shapes, enabling seamless workflows with XOR results
  • Clipper2 offset fix — Monkey-patch for clipper2-js v1.2.4 offsetPolygon loop bug where the previous-vertex index was never updated, producing distorted offsets
  • Loft cap meshesloft-from-path now generates proper start/end cap meshes as separate cap primitives
  • Editor improvements — Fixed selection layer visibility (opacity-based instead of mix-blend-mode), removed distracting active line highlight
  • Updated manual — XOR example now demonstrates a cross shape (two crossing rectangles)

v0.3.1

28 Jan 16:14

Choose a tag to compare

New Features

  • stroke-shape: Convert 2D paths to stroked outline shapes
    • Configurable width
    • Cap styles: :flat, :round, :square
    • Join styles: :miter, :bevel, :round

Bug Fixes

  • Fix backward extrusion normals (negative distance now works correctly)
  • Fix revolve caps for partial angles (< 360 degrees)
  • Fix revolve cap projection using correct ring plane normal

v0.6.0 - Cap Orientation & Line Colors Fix

26 Jan 16:47

Choose a tag to compare

What's New

Bug Fixes

  • Cap face orientation: Fixed incorrect face winding for extrusion caps across all functions (extrude, loft, sweep). Caps now consistently point outward.
  • Triangle shapes: Fixed shapes where the last point nearly coincides with the first (e.g., (shape (f 30) (th 120) (f 30) (th 120) (f 30))). The duplicate closing point is now automatically removed.
  • Colored pen lines: (color) now also affects pen stroke lines, not just mesh faces. Supports keywords (:red), hex numbers (0xff0000), and CSS color strings ("red").

New Features

  • Revolve operation: Added (revolve shape angle) for creating solids of revolution (lathe operation).

Testing

  • Added regression tests for cap orientation that verify both position and normal direction
  • Tests now catch the specific bugs that were fixed in this release