ShapeScript Mobile
Graphics & Design
Free · In-App Purchases
ShapeScript is a 3D modeling program for people who don’t like 3D modeling programs.
Instead of dragging polygons and vertices around in a GUI, ShapeScript lets you define your models precisely using code. No artistic skills are required - ShapeScript does all the drawing for you.
The ShapeScript app includes a parser for a simple language (also called “ShapeScript”). ShapeScript (the language) is a cross between a markup language and a programming language.
You don’t need to be a programmer to use ShapeScript. If you have ever worked with any kind of structured text like JSON or HTML then it should come naturally. But if you do have experience with programming, then you can apply those skills to create even more complex models by using loops, functions and variables to procedurally generate geometry.
Models can be rendered as images or exported in a variety of formats suitable for use in games or 3D printing (export functionality is a premium feature, unlockable via in-app purchase).
more • OpenSCAD Compatibility — Added support for opening, creating, editing and importing OpenSCAD CSG files.
• SVG Import — Added support for importing SVG files as ShapeScript paths or path groups.
• Paths — Added hull, minkowski and boolean CSG operations for coplanar paths.
• Builders — Added support for lathe along a path.
• Paths — Added path length, point orientation, distance-based sampling and resampling, and a length option for path blocks.
• Syntax — Added top-level script options that can be overridden when importing a script.
• Rendering — Added preview symbol for using different geometry and detail settings when viewing and exporting.
• Selection — Added hide command and group selection, with highlighting for all selected children.
• Import — Added named geometry selection using #name fragments and lookup by name using dot or string subscript syntax.
• Paths — Added name support to paths and path primitives, including text.
• Materials — Added CSS named colors and improved color and texture overrides for imported models.
• Text — Added letterspacing option for text blocks.
• Syntax — Added single-line if statements without braces.
• Debugging — Missing fonts and textures now produce warnings instead of fatal errors.
• Performance — Added persistent geometry cache and improved minkowski and union performance.
• Progress — Added progress indicators for script evaluation, geometry generation and export.
• Camera — Flat models now automatically use the top camera view.
• Export — Fixed lathe orientation, polyhedron face winding and transform precision in CSG exports.
• Bug fix — Fixed inset shifting positioned objects and incorrectly offsetting rotated or reflected cones.
• Bug fix — Improved mesh repair, path material preservation and shading on hulls of curved profiles.
• Bug fix — Fixed stale error messages, improved error highlighting and reduced console flicker when reloading files.
• Examples — Added a Tank example demonstrating path hulls, extrusion and stepped path enumeration.
• Compatibility — Added support for iPhone Duo.
• Compatibility — Now requires iOS 15 or later.
1.7.0 4d ago
• Rendering — Added partial minkowski previews and improved cancellation responsiveness.
• SVG Import — Removed redundant points from imported straight paths.
• Bug fix — Fixed type validation for if, for and switch expressions.
• Bug fix — Fixed hull materials and textures being lost, and improved reliability.
• Bug fix — Fixed clipping when combining multiple meshes.
• Bug fix — Improved repair of complex meshes and fixed artifacts in complex path fills and extrusions.
1.6.6 Sep 26
• Source Editor — Fixed source ranges for if, for and switch expressions.
• iPad — Fixed source editor bottom inset behavior.
• Rendering — Improved wireframe toggle responsiveness.
• Performance — Improved cancellation responsiveness for geometry generation and imported models.
• Export — Exporting a scene that is empty after focus/debug filtering now reports the problem earlier.
• Import — Improved SVG path import compatibility.
• Meshes — Improved mesh detessellation, inset and repair behavior.
1.6.5 Sep 12
• Rendering — Improved partial rendering feedback while geometry is still being generated.
• Performance — Improved geometry cache reuse when only material properties change.
• Performance — Improved triangulation, detessellation and path geometry check performance.
• Bug fix — Fixed viewer interaction lockup after switching tabs.
• Bug fix — Fixed extrusion of closed paths containing repeated tail points.
1.6.4 Sep 5
• Source Editor — Added title menu actions for moving, duplicating, renaming and sharing files.
• Source Editor — Added title menu actions for line numbers, line wrapping and find/replace.
• Source Editor — Added manual save support for network documents.
• iPad — Source Editor now opens in a separate window when using multi-window mode.
• Files — Improved handling of moved or renamed files and file names containing / or :.
• Performance — Improved responsiveness when previewing and updating complex models.
• Selection — Fixed UI lockups when building selection menus for complex scenes.
1.6.3 Aug 30
• Syntax — Added support for composing and scaling rotations with the * operator.
• Functions — Added rotation constructor function for defining reusable rotation values.
• Export — The export cancellation dialog no longer flashes up briefly for every export.
• Help — Added offline help viewer with search function.
1.6.2 Aug 17
• Export — Fixed app freezing when exporting complex scenes.
• Export — Image export now preserves the aspect ratio when overriding only width or height.
• Bug fix — Fixed rotation command regression introduced in version 1.6.0.
• Help — Added direct access to online documentation from source editor.
1.6.1 Aug 14
• Syntax — Added inset function for paths and meshes.
• Primitives — Added icosphere geometry type.
• Paths — Added miterLimit property and support for root-level miter limits.
• Materials — Added HSB color support and path.color property.
• Syntax — Added angle-axis rotation literals and object syntax for color, rotation, size, point, path, polygon and mesh values.
• Debugging — Added focus command for inspecting selected geometry in complex scenes.
• Import — Fixed loading of directory-based model formats (e.g. OBJ + MTL).
• Import — Imported STL and OFF files now automatically fix incorrect polygon winding.
• Export — Long-running exports can now be cancelled.
• Export — CSG export now preserves circle and square semantics instead of converting them to generic polygons.
• Bug fix — Fixed occasional mesh corruption issues and improved watertightness.
• Bug fix — Fixed custom block transforms for tuple geometry returns.
• Bug fix — Fixed parsing of command arguments inside multiline tuples.
• Bug fix — Fixed command/property name shadowing.
• Rendering — Improved rendering of translucent planar meshes and opacity textures.
• Examples — Updated the example projects to showcase the new features and techniques.
1.6.0 Aug 11
• Crash fix — Fixed crash on app launch.
1.5.9 Jul 29
• Bug fix — Fixed incorrect count, allButFirst, allButLast and indexed member results for tuples.
• Bug fix — Fixed child transforms being ignored when looping over shape values returned from a function.
• Bug fix — Fixed performance regression when extruding along a path.
• Bug fix — Fixed blank lines being omitted from console output.
• Bug fix — Restored original subpath joining behavior.
• Bug fix — Fixed various cases of malformed or inverted geometry.
1.5.8 Jul 24
• Improvement — Improved handling of complex or self-intersecting paths.
• Bug fix — Fixed inverted edge vertex normals on complex extruded shapes, including text.
• Bug fix — Unlock Export Feature now works again.
1.5.7 Jul 14
• Bug fix — Fixed rendering of non-overlapping transparent objects.
• Object Selection — Added long-press contextual menu for selecting objects in the editor.
• Debug Console — Console is now a resizable bottom sheet instead of a fixed-size footer.
1.5.6 Jul 1
• Bug fix — Fixed rendering of nested transparent objects.
• Bug fix — Fixed spurious type mismatch warning.
• Bug fix — Unterminated block comments now produce an error.
• Bug fix — Fixed loft command when lofted shapes have different numbers of points.
• Crash fix — Fixed crash with non-finite scale or position values.
• Import — Added support for tilde in import paths.
• Import — Added size limits for imported files.
• Improvement — Improved cancellation responsiveness.
1.5.5 Jun 16
• Bug fix — Fixed unexpected flattening of nested tuple values.
1.5.4 Mar 4
• 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.
1.5.3 Feb 8
• 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
1.5.2 2025-11-15
• 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).
1.5.1 2025-10-28
• 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.
1.5.0 2025-10-14
• 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.
1.4.9 2025-08-02
• 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.
1.4.8 2025-06-30
• 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".
1.4.7 2025-06-01
• 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.
1.4.6 2025-05-12
• Bug fix — Fixed escaping of object names in 3MF export.
1.4.5 2024-09-15
• 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.
1.4.4 2024-07-26
• 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.
1.4.3 2024-02-19
• OpenSCAD Compatibility — Added support for opening, creating, editing and importing OpenSCAD CSG files.
• SVG Import — Added support for importing SVG files as ShapeScript paths or path groups.
• Paths — Added hull, minkowski and boolean CSG operations for coplanar paths.
• Builders — Added support for lathe along a path.
• Paths — Added path length, point orientation, distance-based sampling and resampling, and a length option for path blocks.
• Syntax — Added top-level script options that can be overridden when importing a script.
• Rendering — Added preview symbol for using different geometry and detail settings when viewing and exporting.
• Selection — Added hide command and group selection, with highlighting for all selected children.
• Import — Added named geometry selection using #name fragments and lookup by name using dot or string subscript syntax.
• Paths — Added name support to paths and path primitives, including text.
• Materials — Added CSS named colors and improved color and texture overrides for imported models.
• Text — Added letterspacing option for text blocks.
• Syntax — Added single-line if statements without braces.
• Debugging — Missing fonts and textures now produce warnings instead of fatal errors.
• Performance — Added persistent geometry cache and improved minkowski and union performance.
• Progress — Added progress indicators for script evaluation, geometry generation and export.
• Camera — Flat models now automatically use the top camera view.
• Export — Fixed lathe orientation, polyhedron face winding and transform precision in CSG exports.
• Bug fix — Fixed inset shifting positioned objects and incorrectly offsetting rotated or reflected cones.
• Bug fix — Improved mesh repair, path material preservation and shading on hulls of curved profiles.
• Bug fix — Fixed stale error messages, improved error highlighting and reduced console flicker when reloading files.
• Examples — Added a Tank example demonstrating path hulls, extrusion and stepped path enumeration.
• Compatibility — Added support for iPhone Duo.
• Compatibility — Now requires iOS 15 or later.
more Version 1.7.0 4d ago
Data Not Collected The developer does not collect any data from this app.