Development¶
Requirements¶
The current development setup targets Fedora and uses the Rust toolchain in
rust-toolchain.toml. Install the native dependencies with:
$ make deps-fedora
Set up CUDA Oxide with make oxide-setup. CUDA host artifacts currently
target sm_86.
Build and check¶
Use the Makefile for repository operations:
$ make dev
$ make build
$ make check
$ make test
$ make release
make check verifies native dependencies and CUDA artifacts, formatting,
source size, the selected Rust binaries, Clippy, the server and Manim Python
code, and this documentation site. The development launcher writes its log to
target/shrimply-dev.log.
Build the documentation on its own with:
$ make docs
Python environments¶
Python dependencies are managed with uv. The documentation, local compute
server, and Manim worker each have their own pyproject.toml and committed
uv.lock. Use their Makefile targets or uv run --project from the
repository root; do not install their dependencies globally.
Repository layout¶
crates/appsLauncher and editor applications.
crates/timelineandcrates/projectTimeline behavior, project state, storage, and project importers.
crates/preview,crates/video, andcrates/exportPlayback, decoding, compositing, visual effects, and export.
crates/audioAudio rendering, modifiers, transcription, text-to-speech, and lip sync.
crates/3d,crates/paint, andcrates/layered-imageSpecialized content and rendering pipelines.
crates/mathandcrates/coreShared math and core data types.
crates/mcpandcrates/server-clientLive editor automation and compute-server communication.
serverThe uv-managed local AI compute server.
Contributing¶
Read the repository’s contribution terms before submitting a change.