{"id":13682830,"url":"https://github.com/nicklockwood/ShapeScript","last_synced_at":"2025-04-30T09:34:49.762Z","repository":{"id":41547715,"uuid":"220938526","full_name":"nicklockwood/ShapeScript","owner":"nicklockwood","description":"The ShapeScript 3D modeling app for macOS and iOS","archived":false,"fork":false,"pushed_at":"2024-08-09T16:49:59.000Z","size":47185,"stargazers_count":395,"open_issues_count":2,"forks_count":18,"subscribers_count":15,"default_branch":"main","last_synced_at":"2024-11-07T13:56:01.471Z","etag":null,"topics":["3d","3d-graphics","3d-printing","scripting"],"latest_commit_sha":null,"homepage":"https://shapescript.info","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nicklockwood.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-11-11T08:50:30.000Z","updated_at":"2024-11-02T18:00:02.000Z","dependencies_parsed_at":"2023-02-19T20:45:43.968Z","dependency_job_id":"4f0472c1-15ec-4e6b-a4d0-0f0e584d0cd6","html_url":"https://github.com/nicklockwood/ShapeScript","commit_stats":{"total_commits":816,"total_committers":5,"mean_commits":163.2,"dds":"0.013480392156862697","last_synced_commit":"8744deb9f8691b8d2cf8580ddc705c9bfc36be14"},"previous_names":[],"tags_count":72,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nicklockwood%2FShapeScript","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nicklockwood%2FShapeScript/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nicklockwood%2FShapeScript/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nicklockwood%2FShapeScript/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nicklockwood","download_url":"https://codeload.github.com/nicklockwood/ShapeScript/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224206250,"owners_count":17273418,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["3d","3d-graphics","3d-printing","scripting"],"created_at":"2024-08-02T13:01:54.014Z","updated_at":"2024-11-12T02:32:06.758Z","avatar_url":"https://github.com/nicklockwood.png","language":"Swift","readme":"[![Build](https://github.com/nicklockwood/ShapeScript/actions/workflows/build.yml/badge.svg)](https://github.com/nicklockwood/ShapeScript/actions/workflows/build.yml)\n[![Codecov](https://codecov.io/gh/nicklockwood/ShapeScript/graphs/badge.svg)](https://codecov.io/gh/nicklockwood/ShapeScript)\n[![Platforms](https://img.shields.io/badge/platforms-iOS%20|%20Mac%20|%20Linux-lightgray.svg)]()\n[![Swift 5.1](https://img.shields.io/badge/swift-5.1-red.svg?style=flat)](https://developer.apple.com/swift)\n[![License](https://img.shields.io/badge/license-MIT-lightgrey.svg)](https://opensource.org/licenses/MIT)\n[![Mastodon](https://img.shields.io/badge/mastodon-@nicklockwood@mastodon.social-636dff.svg)](https://mastodon.social/@nicklockwood)\n\n![Screenshot](images/Screenshot.jpg?raw=true)\n\n- [Introduction](#introduction)\n- [Installation](#installation)\n- [Usage (Mac)](#usage-mac)\n- [Usage (Linux)](#usage-linux)\n- [Contributing](#contributing)\n- [Credits](#credits)\n\n# Introduction\n\nShapeScript 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.\n\nShapeScript is also the scripting language used for the ShapeScript [Mac](https://apps.apple.com/app/id1441135869) and [iOS](https://apps.apple.com/app/id1606439346) apps.\n\nShapeScript is implemented on top of [Euclid](https://github.com/nicklockwood/Euclid), a cross-platform 3D modeling library written in Swift. Anything you can construct using ShapeScript can be replicated programmatically in Swift using Euclid.\n\nIf you would like to support the development of Euclid and the ShapeScript language, please consider buying a copy of ShapeScript for Mac or iOS (the apps themselves are free, but there is an in-app purchase to unlock some features).\n\n[\u003cimg alt=\"Mac App Store\" height=\"115\" src=\"images/mac-app-store-badge.png?raw=true\"/\u003e](https://apps.apple.com/app/id1441135869)\n[\u003cimg alt=\"App Store\" height=\"115\" src=\"images/app-store-badge.png?raw=true\"/\u003e](https://apps.apple.com/app/id1606439346)\n\n# Installation\n\nShapeScript is packaged as a Swift framework, which itself depends on the [Euclid](https://github.com/nicklockwood/Euclid) framework, a copy of which is included in this repository.\n\nTo install the ShapeScript framework using CocoaPods, add the following to your Podfile:\n\n```ruby\npod 'ShapeScript', '~\u003e 1.8'\n```\n\nTo install using Carthage, add this to your Cartfile:\n\n```ogdl\ngithub \"nicklockwood/ShapeScript\" ~\u003e 1.8\n```\n\nTo install using Swift Package Manager, add this to the `dependencies:` section in your Package.swift file:\n\n```swift\n.package(url: \"https://github.com/nicklockwood/ShapeScript.git\", .upToNextMinor(from: \"1.8.0\")),\n```\n\nThe repository also includes ShapeScript Viewer apps for iOS and macOS, a cut-down version of the full ShapeScript apps available on the [Mac](https://apps.apple.com/app/id1441135869) and [iOS](https://apps.apple.com/app/id1606439346) app stores. It is not currently possible to install or run these apps using CocoaPods, Carthage or Swift Package Manager but you can run them by opening the included Xcode project and selecting the `Viewer (Mac)` or `Viewer (iOS)` schemes. For Linux, see [usage instructions](#usage-linux) below.\n\n**Note:** ShapeScript Viewer requires Xcode 11+ to build, and runs on macOS 10.13+ or iOS 14+.\n\n# Usage (Mac)\n\nThe best way to try out ShapeScript is to run the ShapeScript Viewer app (see above).\n\nOnce 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.\n\nShapeScript 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.\n\nThe ShapeScript Viewer will track changes to the source file and update in real-time as you edit it.\n\nFor more information, check out the [help section](docs/index.md).\n\n# Usage (Linux)\n\nShapeScript provides a command-line interface for Linux machines. You can download the latest CLI build from the [releases page](https://github.com/nicklockwood/ShapeScript/releases).\n\nYou can also install or run the ShapeScript CLI using [Mint](https://github.com/yonaskolb/Mint). If Mint is installed, you can run ShapeScript using:\n\n```bash\n$ mint run nicklockwood/ShapeScript@main\n```\n\nAlternatively, to build the tool yourself from source, you will need to install the [latest Swift toolchain](https://www.swift.org/download/), then run the following commands:\n\n```bash\n$ git clone https://github.com/nicklockwood/ShapeScript\n$ cd ShapeScript\n$ swift build -c release\n```\n\nLike the GUI app, the ShapeScript CLI does not include an editor. Use a text editor of your choice to create your `.shape` file, then pass it to the CLI as follows:\n\n```bash\nshapescript myfile.shape\n```\n\nThis will run the file and report any errors. On success, it will print some info about the model. To export the model, add a second parameter with the path you'd like to export an STL (Stereolithography) file to:\n\n```bash\nshapescript myfile.shape myfile.stl\n```\n\n# Contributing\n\nFeel 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.\n\nIf you wish to contribute improvements to the documentation or the code itself, that's great! But please read the [CONTRIBUTING.md](CONTRIBUTING.md) file before submitting a pull request.\n\n# Credits\n\nThe ShapeScript framework and apps are primarily the work of [Nick Lockwood](https://github.com/nicklockwood).\n","funding_links":[],"categories":["Swift"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnicklockwood%2FShapeScript","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnicklockwood%2FShapeScript","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnicklockwood%2FShapeScript/lists"}