• Bug fix — Fixed unexpected flattening of nested tuple values.
• Syntax — You can now use if, switch and for statements inside expressions.
• Syntax — Added optional message parameter for assert command.
• Syntax — Textures and fonts can now be imported for later use with the import command.
• Bug fix — Fixed off-center convex hull calculation.
• Bug fix — Fixed expression snd func scope transforms.
• Bug fix — Editing or replacing a texture file now triggers reload automatically.
• Improvement — Removed redundant parentheses from logged values.
• Import — Lights are now included when importing scene files.
• Bug fix — Fixed misalignment when using twist option with extrude command
• Bug fix — Fixed vertex normals when extruding along a path with sharp corners
• Bug fix — Fixed loft command with coplanar paths producing inverted faces
• Bug fix — Fixed occasional missing vertices in hull command output
• Improvement — Improved hull and minkowski command performance
• Crash fix — Fixed crash when creating a path from empty subpaths.
• Bug fix — Fixed minkowski command output with off-center input shapes.
• Bug fix — Fixed bounds calculation for intersection shapes.
• Bug fix — Fixed bug where mesh.triangles member returned polygons instead of triangles.
• Bug fix — Fixed partial render state sometimes not being shown after an error.
• Bug fix — Scene info no longer shows imported models and textures after they have been removed.
• Improvement — Improved detessellation algorithm (now merges more polygons than before).
• Improvement — Improved subpaths implementation (more reliably preserves distinct subpaths).
• Minkowski sum — Added minkowski command for creating a Minkowski sum of meshes or paths.
• Editing — Added undo/redo buttons to built-in source editor.
• Export — Added support for exporting OpenSCAD CSG (Constructive Solid Geometry) files.
• Import/Export — Added support for importing and exporting OFF (Object File Format) files.
• Syntax — Custom blocks now accept child objects via implicit children parameter.
• Syntax — Added fonts property for listing available fonts.
• Syntax — Made font command name matching more lenient.
• Syntax — The sum function now works with vector inputs.
• Debugging — Improved error messaging for mismatched angle types.
• Debugging — Improved function parameter type inference.
• Debugging — Improved type error messages.
• Performance — Significantly improved performance when extruding complex paths such as text.
• Improvement — The smoothing command now works with imported meshes.
• Improvement — Improved vertex color blending for hull and extrusion commands.
• Crash fix — Fixed crash when a function has duplicate parameter names.
• Bug fix — The loft command now works correctly again with paths containing a single point.
• Bug fix — Fixed some bugs with transform commands and properties in custom blocks.
• Bug fix — Accessing mesh and polygon member properties now works for tuples of meshes/polygons.
• Bug fix — Fixed cache invalidation bug when using smoothing or hull commands.
• Performance — Significantly improved performance when rendering geometry with high detail.
• Crash fix — Fixed crash in path command when successive points have the same coordinate.
• Crash fix — Fixed crash when displaying error line number in some cases.
• Bug fix — Fixed some text input glitches.
• Bug fix — Significantly improved loft output when lofted shapes have different numbers of points.
• Performance — Repeated access to an imported file is now cached to reduce loading time.
• Improvement — Home Screen icon now supports dark and tinted modes.
• Bug fix — The polygons, triangles and volume members should now work correctly in all cases.
• Improvement — Added support for the British spelling "centre" as an alias for "center".
• Model info — Added mesh volume to model info.
• Meshes — Added mesh.volume member.
• Meshes — Added mesh.triangles and polygon.triangles members.
• Functions — Added sum() function.
• Syntax — Added partial ranges using the new "from" operator.
• Crash fix — Fixed crash when extruding single-point paths.
• Bug fix — Fixed bug with returning subscripted values.
• Bug fix — Fixed some bugs with negative or reversed ranges.
• Bug fix — Fixed escaping of object names in 3MF export.
• Export — Added 3MF export.
• Bug fix — Improved SVG path support.
• Bug fix — Fixed issue where bounds member didn't work on text command output.
• Editor — Tap to select shapes now works through invisible objects.
• Debugging — Partial scene progress is now displayed after an error to aid debugging.
• Export — Added SVG export.
• Syntax — Added "in" operator for testing if a value lies within a tuple or range.
• Syntax — Negative subscript indices can now be used to access elements at the end of a list.
• Bug fix — Exported images now have the correct background.
• Bug fix — Fixed alpha blending issues in exported images.
• Bug fix — Fixed aspect ratio distortion when exporting large images.
• Bug fix — Polygon vertex colors and path point colors now have consistent gamma.
• Bug fix — Fixed double application of local transform in functions.
• Bug fix — Fixed double application of local transform for imported shapes.
• Crash fix — Recursive function or block references no longer crash.
• Import — Improved error messages for missing or inaccessible file imports.
• Import — Vertex colors are now preserved for imported models.
• Export — All image export formats from desktop ShapeScript are now supported on mobile.
• Export — Added camera.antialiased property to disable antialiasing in exported images.
• Export — Improved antialiasing quality for exported images.
• Export — ASCII STL files can now be exported.
• Import — Imported STL files now retain polygon color information.
• Import — Improved error reporting when import fails.
• Syntax — Added switch/case statements.
• Syntax — Added subscripting support for objects and tuples.
• Syntax — Added object constructor command.
• Syntax — Added text.string, font, color and linespacing members.
• Syntax — You can now use import statements in expressions.
• Materials — The opacity property can now be set to a texture for variable opacity.
• Materials — Textures now use nearest-neighbor filtering for upscaling instead of linear.
• Materials — Added normals command for setting variable surface normals using a texture.
• Materials — Added roughness and metallicity properties for physically based rendering (PBR).
• Materials — Added material command for storing and setting all material properties at once.
• Lighting — Added light.shadow property to control shadow casting.
• Bug fix — Fixed misaligned shapes when exporting a scene containing groups in USD format.
• Crash fix — Fixed crash when exporting a scene containing lights in DAE format.
• Syntax — Added point.isCurved and polygon.center member properties.
• Bug fix — Fixed ambiguity when calling functions with parenthesized arguments.
• Debugging — Added error message when using more than 8 lights in a scene (previously this failed silently).
• Export — Exported STL files now retain polygon color information.
• Mesh precision — Further reduced cracks in meshes when using CSG operations.
• Debugging — Made some improvements to error messages and suggestions.
• Bug fix — Fixed bug where structured data was flattened when returned from a block or function.
• Bug fix — Fixed "Show Wireframe" status not updating correctly in camera menu.
• Bug fix — Fixed crash in source editor.
• Bug fix — Fixed bug where structured data was flattened when returned from a block or function.
• Bug fix — Fixed orthographic status not updating correctly in camera menu.
• Bug fix — Source editor no longer closes when shape file is reloaded.
• Improvement — Disabled double space period shortcut in source editor.
• Examples — Added Icosahedron example project.
• Documentation — Improved camera control docs.
• Bug fix — Fixed bug where a block option could clash with a global symbol of the same name.
• Bug fix — Fixed precedence issue with path point and curve commands.
• Bug fix — Fixed broken importing of external model file formats.
• Bug fix — Overridden global constants or functions can now be used within blocks.
• Bug fix — Block options no longer produce spurious "used before it was defined" errors.
• Bug fix — Fixed issue where view was initially blank after opening a file until camera was reset.
• Bug fix — Fixed camera menu not updating after camera is moved or reset.
• Improvement — Export menu stays open when toggling options.
• Improvement — Block options can now be set conditionally using if statements.
• Improvement — Removed Reddit community link.
• Bug fix — Fixed confusing function / operator precedence.
• Mesh precision — Reduced cracks in meshes when using CSG operations.
• Source editor — Improved scroll-to-cursor behavior in source editor.
• Feature — Added "What's New in ShapeScript" screen.
• Bug fix — Fixed range precision issue for loops with fractional step value.
• Bug fix — Fixed type error when overriding shape transforms.
• Bug fix — Improved type inference for import statements.
• Bug fix — Fixed inverted Z-up export option.
• Export — You can now export models and images in various formats (requires in-app purchase to unlock).
• Paths — Added arc command for easily creating partial circles or rounded corners in paths.
• Math functions — Added dot(), cross(), length() and normalize() functions for working with vectors.
• Math operators — You can now use arithmetic operators like *, /, + and - with vector operands.
• Bug fix — Setting unequal width/height for roundrect size no longer distorts corner curves.
• Bug fix — Fixed bug where modulo operator sometimes returned negative values.
• Feature — The position, orientation and size of a defined shape can now be overridden as if it were a block.
• Debugging — Improved error messages and suggestions in some cases.
• Source editor — Multiple fixes and improvements to editing and syntax highlighting.
• Bug fix — Passing name option to a block that returns a path no longer makes the result unusable in a builder.
• Bug fix — Fixed some bugs in SVG path processing.