Skip to content
Projects and packages

Projects and packages

A project is a folder containing project.toml and the files it names. Keep the folder in your normal development workspace or Git repository.

name = "My App"
entry = "main.py"
sdk = "python"
dependencies = ["requests"]
FieldMeaning
nameThe name shown by Studio.
entryThe Python file to run, relative to the project folder.
sdkThe project SDK. Current Studio projects use python.
dependenciesPython package requirements for this project.
buildOptional shell command for building frontend assets.
publishedWhether the app carries prepared frontend output for distribution.

Studio runs the entry file from the project folder. Relative file paths and local Python imports resolve there.

Python environments

Studio manages a separate virtual environment for each project. Environments live in Studio’s data directory, rather than in the project folder. The bundled SDK is installed with its matching runtime dependencies.

Use the packages panel or edit dependencies to declare additional packages. Studio can offer to add a package when a run fails on a missing import.

A project folder carries its source and dependency requirements. It does not carry the managed environment. The destination machine must be able to install any additional packages your project needs.

Frontend builds

A project that uses a frontend toolchain can declare its build:

build = "npm install && npm run build"

Run the build from Studio’s runtime menu or your terminal. Studio also builds an editable project with a declared command before running it. Published projects use the assets already supplied.

Your Python entry point chooses the folder to serve, such as spatialstudio.serve(files="dist").

Studio projects and engine projects

The Studio folder holds application code. A SpatialEngine project holds versioned spatial objects and data. Saving code in Studio does not save an engine project’s state.

Use the engine’s local or remote project API for spatial data that must persist.