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.
- Added `in` operator for testing if a value lies within a tuple or range
- Negative subscript indices can now be used to access elements at the end of a list
- Improved error messages for member access and subscripting
- Fixed bug with subscripting parenthesized values
- Fixed a bug with casting single-element tuples
- Made SVGPath functions public
- Bumped Euclid to version 0.7.7
- Fixed file access bug for iCloud hosted files
- Fixed issue where initial seed for random sequence wasn't truncated to correct range
- Updated iOS TextView with some bug fixes
- Bumped Euclid to version 0.7.6
- Bumped LRUCache to version 1.0.7
- Fixed alpha blending bugs in rendered images
- Uniform vertex colors are now converted to a material
- Improved error messaging for file access errors
- Increased stack limit to prevent overflow for trivial recursion
- Fixed double application of local transform to imported shapes
- Fixed double application of local transform in functions
- Bumped Euclid to version 0.7.4
- Bumped LRUCache to version 1.0.5
- Improved color replacement for imported shapes
- STL import now supports facet colors
- Linux CLI now supports binary STL export
- Improved reporting of system errors
- Added `camera.antialiased` property
- Bumped Euclid to version 0.7.3
- Bumped SVGPath to version 1.1.4
- Added visionOS support
- Added `switch/case` statements
- Added subscripting support for objects and tuples
- Added `object` constructor command
- Objects can now be cast to/from memberwise types
- Added `light.shadow` property
- The `opacity` property can now be set to a texture
- Textures now use nearest-neighbor filtering for upscaling instead of linear
- Added `normals` command for setting surface normals with a texture
- Added `roughness` and `metallicity` properties for physically based rendering (PBR)
- Added `material` command for setting all material properties at once
- Combined `Material.color` and `texture` properties into single property internally
- The `Material.isOpaque` property is now correctly computed when using a texture
- Added `text.string`, `font`, `color` and `linespacing` members
- You can now use `import` statements in expressions
- Object values are now correctly unwrapped
- Removed some deprecated methods
- Fixed spotlight debug shape orientation
- Added `Geometry.withoutLights()` method
- Added `Geometry.withoutGroupTransform()` method
- Deprecated `Geometry.with(name:)` method
- Added `point.isCurved` and `polygon.center` member properties
- Added `object` type logging and made logging less error-prone
- Added documentation for lights limit introduced in 1.7.0
- Fixed ambiguity when calling functions with parenthesized arguments
- Added error message when using more than 8 lights in a scene
- Bumped Euclid to version 0.7.1
- Bumped Euclid to version 0.6.18 (fixes crash when building with Xcode 15)
- Fixed "Show Wireframe" menu item not updating correctly on iOS
- Additional cone detail is now only added when using textures
- Added error hint for misspelled else keyword
- Added Value.errorDescription for clearer error messages
- Fixed out of bounds crash in iOS source editor
- Fixed some typesystem edge cases for optionals, unions and lists
- Added checked angular types to help prevent mixed angle errors
- Added regression tests for example shape files
- Bumped Euclid to version 0.6.15
- Fixed bug where structured data was flattened when returned from a block or function
- Source editor on iOS no longer closes when shape file is reloaded
- Disabled double space period shortcut in iOS source editor
- Fixed orthographic checkbox not updating on iOS
- Added Icosahedron example project
- Improved camera control docs