Need help with ShapeScript?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

233 Stars 7 Forks MIT License 232 Commits 1 Opened issues


Source code for the ShapeScript 3D modeling app for macOS

Services available


Need anything else?

Contributors list

# 2,139
231 commits
# 15,758
1 commit

Build Codecov Platforms Swift 5.1 License Twitter



ShapeScript is a hybrid scripting/markup language for creating and manipulating 3D geometry using techniques such as extruding or "lathing" 2D paths to create solid 3D shapes, and CSG (Constructive Solid Geometry) to combine or subtract those shapes from one another.

ShapeScript is implemented on top of Euclid, a cross-platform 3D modeling library written in Swift. Anything you can construct using ShapeScript can be replicated programmatically in Swift using Euclid.

ShapeScript is also the scripting language used for the ShapeScript App.

If you would like to support the development of Euclid and the ShapeScript language, please consider buying a copy of ShapeScript (the app itself is free, but there is an in-app purchase to unlock some features).


ShapeScript is packaged as a dynamic framework, which itself depends on the Euclid framework, a copy of which is included in this repository.

To install the ShapeScript framework using CocoaPods, add the following to your Podfile:

pod 'ShapeScript', '~> 1.3'

To install using Carthage, add this to your Cartfile:

github "nicklockwood/ShapeScript" ~> 1.3

To install using Swift Package Manager, add this to the

section in your Package.swift file:
.package(url: "", .upToNextMinor(from: "1.3.0")),

The repository also includes the ShapeScript Viewer application, a cut-down version of the ShapeScript app available on the Mac App Store. It is not currently possible to install or run this app using CocoaPods, Carthage or Swift Package Manager, however you can run it by opening the included Xcode project and selecting the

ShapeScript Viewer

Note: ShapeScript Viewer requires Xcode 11+ to build, and runs on macOS 10.13+.


The best way to try out ShapeScript is to run the ShapeScript Viewer app (see above).

Once you have opened the app, you can create a new ShapeScript document from the File menu, or open one of the example projects from the Help menu.

ShapeScript does not include a built-in editor. Instead, after opening a shape file in the ShapeScript Viewer, you can select Open in Editor (Cmd-E) from the Edit menu to open the source file in a text editor of your choice.

The ShapeScript Viewer will track changes to the source file and update in real-time as you edit it.

For more information, check out the help section.


Feel free to open an issue in Github if you have questions about how to use the library, or think you may have found a bug.

If you wish to contribute improvements to the documentation or the code itself, that's great! But please read the file before submitting a pull request.


The ShapeScript framework and viewer are primarily the work of Nick Lockwood.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.