This release is a pre-release and may not be stable for production use.
cutlass (Python)
MoviePy-style Python bindings for the Cutlass video engine. Build a project with explicit tracks, place clips, animate properties, and export, all through a track-first object model over the pure-Rust timeline, GPU compositor, and platform-native exporter.
See api-design.md for the full v2 API reference.
Install
pip install --pre cutlass-py # imports as `cutlass`
Wheels ship for macOS (Apple Silicon) and Windows (x64), Python 3.9+. The
distribution is named cutlass-py (the bare cutlass name on PyPI belongs to
an unrelated project); the module you import is cutlass. --pre is needed
while releases carry a pre-release version (e.g. 0.5.3a0).
Install (from source)
Requires the Rust toolchain and maturin.
cd crates/cutlass-py
python3 -m venv .venv && source .venv/bin/activate
pip install maturin numpy
maturin develop --release # builds + installs `cutlass` into the venv
Quick start
import cutlass
from cutlass import Project, Text, Solid
p = Project("demo", fps=30, canvas="16:9", background=(20, 20, 30))
bg = p.add_track("sticker", name="Background")
overlay = p.add_track("text", name="Titles")
bg.add(Solid((38, 42, 64, 255)), start=0.0, duration=2.0)
title = overlay.add(
Text("Cutlass", size=220, color="#f0f0ff"),
start=0.0,
duration=2.0,
)
title.animate(opacity=[(0.0, 0.0), (0.5, 1.0)], easing="ease_out")
print(p) # Project(size=(1920, 1080), fps=30.000, duration=2.000s)
frame = p.get_frame(0.5) # numpy uint8 array, shape (height, width, 4), RGBA
p.export("out.mp4") # H.264/mp4 (+ AAC when audio clips exist)
p.save("demo.cutlass")
Object model
Project
├── media pool p.import_media(path) -> Media
├── tracks p.add_track(kind) -> Track
│ └── clips track.add(content, start=...) -> Clip
│ ├── transform / crop / speed / volume
│ ├── effects clip.add_effect(id) -> Effect
│ └── transition clip.transition(id, duration=...)
└── render p.get_frame(t), p.export(path)
Tracks are explicit. Create a track, then add clips to it. Content descriptors
(Text, Solid, shapes, media.subclip(...)) describe what; track.add decides
where and when.
Animation: set constants with properties (clip.opacity = 0.5) or keyframes with
clip.animate(opacity=1.0, at=0.4) / batch curves
clip.animate(opacity=[(0.0, 0.0), (0.4, 1.0)]).
Media import
import_media accepts probed video, audio, and still images (PNG, JPEG, and
other formats the decoder recognizes). Stills register with kind == "image",
a default duration of 5 seconds, and no audio. Place them on video tracks;
the placement duration can exceed the pool default (the same frame holds).
clip = p.import_media("footage.mp4")
still = p.import_media("photo.png")
main = p.add_track("video")
main.add(clip.subclip(3.0, 8.0), start=0.0)
main.add(clip[3:8], start=0.0) # slicing sugar
main.add(still, start=0.0, duration=10.0) # hold the still for 10s
Track kinds
video, audio, text, sticker, effect, filter, adjustment. The kind
must match the clip content (TrackKindError on mismatch): media goes on
video/audio, Text on text, Solid, shapes, and Sticker on sticker.
Sticker("heart") places a bundled sticker (static or animated); browse ids
with cutlass.stickers().
Errors
| Exception | When |
|---|---|
OverlapError |
Clips overlap on the same track |
TrackKindError |
Wrong track kind for content |
MediaError |
Import/probe failure |
RenderError |
GPU frame or export failure |
Development
maturin develop # debug build into the active venv
pip install pytest
python -m pytest tests/ -q # full API suite (bootstraps its own mp4 via export)
python tests/smoke.py # quick GPU frame smoke test
python examples/tour.py # optional; needs sample media paths
Rust-side unit tests cover the pure conversion helpers. The test binary links libpython, so on macOS point dyld at the Python framework:
DYLD_FRAMEWORK_PATH="$(python3 -c 'import sys; print(sys.base_prefix.rsplit("/Python3.framework", 1)[0])')" \
cargo test --no-default-features
Export: uses the platform-native encoder: Apple (VideoToolbox) and Windows (Media Foundation), both H.264 + AAC → mp4. Other platforms raise until their backends land.
Metadata
Release files for cutlass-py 0.5.3a1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| cutlass_py-0.5.3a1.tar.gz | 762.5 kB | Details |
Built distributions (wheels)
Total release size: 66.4 MB
Release files / cutlass_py-0.5.3a1.tar.gz
| Download URL | cutlass_py-0.5.3a1.tar.gz |
|---|---|
| Size | 762.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ef7b9034c820a5eed26653b32dfa79656cc8f3bc1b450b538a4e4db48c46bce5
|
|
BLAKE2b-256 checksum How to use checksums |
f8e88a101a7a0ffd6894f63c89f51d9e37d2800a8667839aefde0d04cdabcd60
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 16, 2026.
Transparency logRelease files / cutlass_py-0.5.3a1-cp314-cp314-win_amd64.whl
| Download URL | cutlass_py-0.5.3a1-cp314-cp314-win_amd64.whl |
|---|---|
| Size | 5.8 MB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
29588111d91c9839941934fe0eb1171528531f3cfb3eea0007ba26644bf25dd2
|
|
BLAKE2b-256 checksum How to use checksums |
c5f27ba10abbcd92ef047a549d5110c228e164f0d58d08b20a33fdd5bbadd3d4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 16, 2026.
Transparency logRelease files / cutlass_py-0.5.3a1-cp314-cp314-macosx_11_0_arm64.whl
| Download URL | cutlass_py-0.5.3a1-cp314-cp314-macosx_11_0_arm64.whl |
|---|---|
| Size | 5.1 MB |
| Tags | CPython 3.14 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
82f481830b9813ce9e04aa88ad08f68ad2c614fc827108d6d4da1feb05d0ef3d
|
|
BLAKE2b-256 checksum How to use checksums |
1990bdf42500eabe9cc0d9112cd9c37f2dfb18fc3afa26be3826bf384c824f83
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 16, 2026.
Transparency logRelease files / cutlass_py-0.5.3a1-cp313-cp313-win_amd64.whl
| Download URL | cutlass_py-0.5.3a1-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 5.8 MB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
dfce08076c14f7e4bef086aeff6491fe6f65dbf9b8636cb39048279f3cded06b
|
|
BLAKE2b-256 checksum How to use checksums |
fa76a6ef5bfc83451e1a355eab9dc898b2caa11f98bbc1317ad9f87c5d995f25
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 16, 2026.
Transparency logRelease files / cutlass_py-0.5.3a1-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | cutlass_py-0.5.3a1-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 5.1 MB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
037f3b78c987b43a7502c891a89a4b04fbab36ec90ecda9dc03ffca0b6d4083d
|
|
BLAKE2b-256 checksum How to use checksums |
cc42026a60af0b4d3035a32eb4a090709b56f58a9150c35a2ad5c0ff1373cb9d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 16, 2026.
Transparency logRelease files / cutlass_py-0.5.3a1-cp312-cp312-win_amd64.whl
| Download URL | cutlass_py-0.5.3a1-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 5.8 MB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
6b304c5ef6246966d918c0bd2181d4756100f3c7fc527a10229c12ca71ae16b2
|
|
BLAKE2b-256 checksum How to use checksums |
cfbf4228eda01e899a3a0add516edefa26d3863dd27aa6c87a65b64e5e52da57
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 16, 2026.
Transparency logRelease files / cutlass_py-0.5.3a1-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | cutlass_py-0.5.3a1-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 5.1 MB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
11166dc1d0cde2924f13b2734f735386be5e55d9c1bfad80f974678c70a806ee
|
|
BLAKE2b-256 checksum How to use checksums |
b5fa24bea57bf0120c90818a2c57cf8709817a10c972a27e1e53689f17aaa886
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 16, 2026.
Transparency logRelease files / cutlass_py-0.5.3a1-cp311-cp311-win_amd64.whl
| Download URL | cutlass_py-0.5.3a1-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 5.8 MB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
194a327a84da81d2cc6ba6e5aa8edb32123d2a43b9683d94f64f7acdfd2edf7a
|
|
BLAKE2b-256 checksum How to use checksums |
89588a7e5edb71e7f22956851dd08db26eb30338ad4717e5ca59c8743940b567
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 16, 2026.
Transparency logRelease files / cutlass_py-0.5.3a1-cp311-cp311-macosx_11_0_arm64.whl
| Download URL | cutlass_py-0.5.3a1-cp311-cp311-macosx_11_0_arm64.whl |
|---|---|
| Size | 5.1 MB |
| Tags | CPython 3.11 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
1cb48308fae6bdf69e50875909932c1d8ff5ec13914e64293e242d23bbc61de1
|
|
BLAKE2b-256 checksum How to use checksums |
3af8d64882b96d64b3e61765785db7c8ebdc50c8c8bcc96d7b09d2a7976c87ba
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 16, 2026.
Transparency logRelease files / cutlass_py-0.5.3a1-cp310-cp310-win_amd64.whl
| Download URL | cutlass_py-0.5.3a1-cp310-cp310-win_amd64.whl |
|---|---|
| Size | 5.8 MB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
d9f2098ad6164c2d5050c0a2498450ea31e714f18acdc0d89635dbb2394577e7
|
|
BLAKE2b-256 checksum How to use checksums |
95eae5a8f2d8ebcac6880fdde89bb06c5662aba04a1ddd80abb8fa377967d490
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 16, 2026.
Transparency logRelease files / cutlass_py-0.5.3a1-cp310-cp310-macosx_11_0_arm64.whl
| Download URL | cutlass_py-0.5.3a1-cp310-cp310-macosx_11_0_arm64.whl |
|---|---|
| Size | 5.1 MB |
| Tags | CPython 3.10 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
0df1e1add0e23bd0720299c51fef59a6360511879725e4fb821662e6e2eb856a
|
|
BLAKE2b-256 checksum How to use checksums |
14c7026e00ca959e8cfd1fd90da49519845abb2def16c443cf9213c6998a9ecb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 16, 2026.
Transparency logRelease files / cutlass_py-0.5.3a1-cp39-cp39-win_amd64.whl
| Download URL | cutlass_py-0.5.3a1-cp39-cp39-win_amd64.whl |
|---|---|
| Size | 5.8 MB |
| Tags | CPython 3.9 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
39ab7513e4431d363d0bddd2f870a4241112a38f936aa6c7a1e81871399f2b1b
|
|
BLAKE2b-256 checksum How to use checksums |
c63c9df1a447aaa7ad20b21a37f1c2b1ab1520633c0f207b58670bea7d799abd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 16, 2026.
Transparency logRelease files / cutlass_py-0.5.3a1-cp39-cp39-macosx_11_0_arm64.whl
| Download URL | cutlass_py-0.5.3a1-cp39-cp39-macosx_11_0_arm64.whl |
|---|---|
| Size | 5.1 MB |
| Tags | CPython 3.9 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
dc5ffa7e005c67be6257aa8933380ab72413f70a9423d3e7b66372f3e2439b84
|
|
BLAKE2b-256 checksum How to use checksums |
a65e5b25278d9e642e86299fc4a4de26cd3ab90182e7cf9e5774f78fef72d3d9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 16, 2026.
Transparency log