The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
- Fixed bug where path lines were drawn too thin for large models
- Improved error messaging for invalid use of option
- Fixed suggestions for misspelled commands
- Bumped Euclid to version 0.5.21
- Add implicit `detail/smoothing`, `color/texture`, `position/orientation/size` and `font` options to custom blocks
- Logical `and/or` expressions now short circuit (don't evaluate their second parameter unless needed)
- Added support for creating `MaterialProperty` from `SCNMaterials` using `NS/UIImage`
- Fixed setting camera position on locked documents (such as the Example projects)
- Added slightly stronger type safety when calling commands
- Fixed axes contrast when using per-camera backgrounds
- Fixed font inheritance for user-defined blocks
- Added custom fonts to model info display
- Added USDZ to list of supported export types
- Improved iOS compatibility
- Added support for custom light sources using the `light` command
- Added user-defined functions/commands (previously only blocks could be defined)
- The width and/or height for exported images can now be set on a per-camera basis
- Added `polygon` command for more easily creating regular polygon paths
- The scene background can now be set individually for each camera
- Using `position`, `orientation` and `size` inside a `path` now works again (broken since 1.4.4)
- Using `rnd` command in option default expressions no longer has a knock-on effect on the sequence
- Options can now reference local constants in their default values
- Material brightness logic used in Viewer app is now part of the ShapeScript core
- Using `wrapwidth` or `linespacing` text commands inside an `svgpath` block now raises an error
- Fixed blank screen when scene contains empty `camera` node
- Removed `StatementType.block` case in favor of expression form
- Fixed some bugs in path generation relating to point colors
- The `OSColor` typealias is now private
- Added SVGPath dependency
- Camera is no longer reset on every reload
- Fixed camera snapback if moved during initial model load
- Added `smoothing` command for controlling surface normal generation
- Disallowed used of `detail` and `font` commands in scopes where they have no effect
- The `svgpath` command now works on Linux
- Bumped Euclid to version 0.5.20
- Fixed `svgpath` command (broken in 1.4.5)
- Fixed bug where axes were rendered in the wrong color
- Watertight status is now displayed in object info panel
- The `roundrect` command now works on Linux
- Bumped LRUCache to version 1.0.3
- Bumped Euclid to version 0.5.18
- Added support for setting per-vertex colors in a path
- Font, text color and linespacing can now be specified per-line within a text block
- Fixed underestimated bounds calculation for extrusion along a path
- Made logic for child count calculation more consistent
- Bumped Euclid to version 0.5.17
- Fixed infinite recursion crash when a shape file tries to import itelf
- Improved error message when imported model file is not readable
- Fixed assertion failure when evaluating imported block due to source confusion
- Added stricter symbol checking in stdlib so, e.g. name can't be used inside a path
- Fixed bug in viewer where examples always open in orthographic mode
- Imported gifs are now counted as textures rather than models in info panel
- Model type is now displayed correctly in info panel
- Fixed some iOS compatibility issues
- ShapeScript will now attempt to ensure generated meshes are watertight by default
- Fixed unintended behavior change with blocks returning multiple shapes (introduced in 1.3.7)
- Fixed precondition failure when calling a block from inside a `path` command
- Camera nodes are no longer included in object count in model info
- Handle repeated parameter lists without command tokens in `svgpath`
- Added additional `svgpath` error handling
- Bumped Euclid to version 0.5.15
- The `svgpath` command now supports arc instructions ('A' and 'a')
- Fixed bug in `svgpath` affecting absolute horizontal ('H') and vertical ('V') lines
- Save panel in viewer now adds `.shape` extension to file name if not present
- Made online documentation link logic more robust
- Fixed bug where `along` property was ignored in `extrude` command
- Fixed wireframe rendering mode in viewer