Releases: vipenzo/ridley
Releases · vipenzo/ridley
v1.10.0 — 3D Fillet & Manual Export
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 blendPer-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.mdPython script for batch export with images:
python3 scripts/export-manual.py --lang en # With screenshots
python3 scripts/export-manual.py --check # Non-regression testOther
- Improved capture scene lighting and camera framing for better screenshots
- New examples: multiboard connector, pipe clamp
- Shell API unified:
:stylekeyword replaces separate functions - Pattern tiling and decorated shell caps (voronoi, grid)
fillet-shape,chamfer-shapefor 2D corner operationscappedshape-fn for loft cap rounding
v1.9.0: AI Describe improvements
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
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
shellshape-fn: variable-thickness hollow extrusion with openingswoven-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
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 :orthogonalfor 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-unionexample (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
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 automaticallyrole="alert"+aria-live="assertive"on error panel — errors announced immediatelyaria-labelon 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
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
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
Ridley v1.0.0
Major release with substantial improvements to the 2D shape boolean system and loft pipeline.
Highlights
- Multi-shape XOR —
shape-xornow correctly returns a vector of shapes for disconnected regions (e.g. two crossing rectangles produce a cross with center cut out) - Multi-shape pipeline —
shape-offset,loft,bloft,revolve, andstampall accept vectors of shapes, enabling seamless workflows with XOR results - Clipper2 offset fix — Monkey-patch for clipper2-js v1.2.4
offsetPolygonloop bug where the previous-vertex index was never updated, producing distorted offsets - Loft cap meshes —
loft-from-pathnow 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
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
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