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"]| Field | Meaning |
|---|---|
name | The name shown by Studio. |
entry | The Python file to run, relative to the project folder. |
sdk | The project SDK. Current Studio projects use python. |
dependencies | Python package requirements for this project. |
build | Optional shell command for building frontend assets. |
published | Whether 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.