@hraness/slopcamera 3.7.0 → 3.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +286 -297
- package/apps/desktop/README.md +2 -9
- package/apps/desktop/application/html-overlay-integrity.ts +27 -4
- package/apps/desktop/application/operation.ts +1 -1
- package/apps/desktop/application/operations/spatial-render.ts +1 -1
- package/apps/desktop/application/spatial-assets.ts +1 -1
- package/apps/desktop/cli/{menubar-status.ts → activity-status.ts} +23 -21
- package/apps/desktop/cli/args.ts +2 -10
- package/apps/desktop/cli/command-host-resources.ts +0 -1
- package/apps/desktop/cli/commands.ts +14 -9
- package/apps/desktop/cli/desktop-status.ts +271 -0
- package/apps/desktop/cli/help.ts +10 -24
- package/apps/desktop/cli/legacy-login.ts +184 -0
- package/apps/desktop/cli/main.ts +8 -0
- package/apps/desktop/cli/outputs.ts +19 -0
- package/apps/desktop/cli/registry.ts +314 -0
- package/apps/desktop/cli/verbs.ts +193 -0
- package/apps/desktop/dist/cli/main.js +293 -306
- package/dist/cli.js +1 -1
- package/dist/{index-nv3byqa1.js → index-6jrxaser.js} +1 -1
- package/dist/index.js +1 -1
- package/docs/README.md +5 -2
- package/package.json +13 -7
- package/skills/slopcamera/SKILL.md +2 -2
- package/skills/slopcamera/references/install.md +2 -2
- package/skills/slopcamera/references/launch-films.md +4 -0
- package/skills/slopcamera/references/reference-led-3d.md +1 -1
- package/src/version.ts +1 -1
- package/apps/desktop/cli/menubar.ts +0 -272
package/README.md
CHANGED
|
@@ -1,78 +1,85 @@
|
|
|
1
1
|
# SlopCamera
|
|
2
2
|
|
|
3
|
-
[](https://slopcamera.com/docs/tutorials/first-native-film#inspect-the-finished-example)
|
|
4
4
|
|
|
5
|
-
**SlopCamera is a media studio for coding agents
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
**SlopCamera is a media studio for coding agents.** SlopCamera lets your coding
|
|
6
|
+
agent make images, diagrams, animation, 3D scenes, and video from source files
|
|
7
|
+
it can keep revising. It works with Codex, Claude Code, and other agents.
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
SlopCamera gives the agent
|
|
11
|
-
|
|
12
|
-
and
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
9
|
+
A frontier model such as Claude Opus can write a video or a graphic from
|
|
10
|
+
scratch in one pass. SlopCamera gives the agent packaged, tested techniques to
|
|
11
|
+
reuse instead, for diagrams, motion graphics, 3D scenes, native Blender,
|
|
12
|
+
CadQuery, and Manim films, and footage edits. The agent writes a short source
|
|
13
|
+
file, and the SlopCamera CLI renders it, checks it, and writes the variants each
|
|
14
|
+
technique supports, such as light and dark diagrams or 16:9 and 9:16 cuts of a
|
|
15
|
+
video. The source stays beside the output, so a revision is an edit to that
|
|
16
|
+
file and a new render.
|
|
16
17
|
|
|
17
|
-
[Install](#install-slopcamera) · [
|
|
18
|
-
|
|
19
|
-
## Made with SlopCamera
|
|
20
|
-
|
|
21
|
-
[](https://slopcamera.com/docs/tutorials/first-native-film#inspect-the-finished-example)
|
|
22
|
-
|
|
23
|
-
Watch the [six-second product film](https://slopcamera.com/docs/tutorials/first-native-film#inspect-the-finished-example),
|
|
24
|
-
then change its [geometry, materials and camera](examples/showcase/native/product).
|
|
25
|
-
For 2D motion, try the [editable editorial animation](https://slopcamera.com/docs/tutorials/first-animation).
|
|
26
|
-
The [portrait geometry lesson](https://slopcamera.com/docs/how-to/educational-video#inspect-the-finished-example)
|
|
27
|
-
adds mathematical typesetting, a presenter and authored captions. Each guide pairs
|
|
28
|
-
the rendered output with source, runtime requirements and reproduction steps.
|
|
18
|
+
[Install](#install-slopcamera) · [First diagram](#make-your-first-diagram) · [Techniques](https://slopcamera.com/docs/reference/techniques) · [Docs](https://slopcamera.com/docs) · [Compare](#compared-with-other-tools) · [slopcamera.com](https://slopcamera.com)
|
|
29
19
|
|
|
30
20
|
## Why SlopCamera
|
|
31
21
|
|
|
32
|
-
- **
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
- [Remotion](https://www.remotion.dev/) renders React components to video and can
|
|
51
|
-
render on AWS Lambda. It is source-available and needs a paid license for
|
|
52
|
-
companies of four or more people.
|
|
53
|
-
- [HyperFrames](https://github.com/heygen-com/hyperframes) renders HTML to MP4
|
|
54
|
-
under Apache 2.0, with optional HeyGen-hosted rendering.
|
|
55
|
-
- [MCP for Blender](https://github.com/ahujasid/mcp-for-blender), formerly Blender
|
|
56
|
-
MCP, lets an agent drive a running Blender interactively.
|
|
57
|
-
|
|
58
|
-
SlopCamera renders HTML motion too, and adds diagrams, Three.js scenes, headless
|
|
59
|
-
Blender, CadQuery, and Manim renders, and edits of your own footage in one local
|
|
60
|
-
project. It has no cloud rendering and a much smaller community. See
|
|
61
|
-
[the full comparison](https://slopcamera.com/docs/explanation/why-slopcamera#compared-with-other-tools).
|
|
22
|
+
- **The agent writes the part that is specific to your request.** A diagram
|
|
23
|
+
is a JSON file of boxes and arrows, a title animation is an HTML scaffold
|
|
24
|
+
for one of seven profiles, and a 3D shot is scene JSON with a named camera.
|
|
25
|
+
The renderer, frame timing, encoding, and export formats are already
|
|
26
|
+
installed. No benchmark of token use has been published yet.
|
|
27
|
+
- **Revisions change the source, not the whole result.** Change one label,
|
|
28
|
+
camera, or cut and render again. Every export comes from the same source, so
|
|
29
|
+
light and dark versions, or 16:9 and 9:16 cuts, stay in step.
|
|
30
|
+
- **Checks run before the agent reports back.** A strict diagram checker,
|
|
31
|
+
scene audits, render plans, and `doctor` catch problems the agent can
|
|
32
|
+
fix before you look. They check structure, not taste; you still review the
|
|
33
|
+
render.
|
|
34
|
+
- **The techniques match the installed CLI.** The Bun CLI, a TypeScript SDK,
|
|
35
|
+
and an Agent Skill ship at the same version. The skill sends the agent to
|
|
36
|
+
the guide for its current job instead of loading every guide at once.
|
|
37
|
+
- **Work stays on your machine.** Projects are local files and there is no
|
|
38
|
+
SlopCamera account. Generation is optional: it uses your own Vercel AI
|
|
39
|
+
Gateway access or, for prompt-only images, prepaid Hraness Credits.
|
|
62
40
|
|
|
63
41
|
## Install SlopCamera
|
|
64
42
|
|
|
65
|
-
Install [Bun 1.3.14 or newer](https://bun.sh), then install the
|
|
66
|
-
[SlopCamera v3.
|
|
67
|
-
|
|
43
|
+
Install [Bun 1.3.14 or newer](https://bun.sh), then install the
|
|
44
|
+
[SlopCamera v3.8.0 release](https://github.com/hraness/slopcamera/releases/tag/v3.8.0)
|
|
45
|
+
and its matching Agent Skill:
|
|
68
46
|
|
|
69
47
|
```sh
|
|
70
|
-
bun add --global https://github.com/hraness/slopcamera/releases/download/v3.
|
|
48
|
+
bun add --global https://github.com/hraness/slopcamera/releases/download/v3.8.0/hraness-slopcamera-3.8.0.tgz
|
|
71
49
|
slopcamera skill install --target agents
|
|
72
50
|
```
|
|
73
51
|
|
|
74
|
-
|
|
75
|
-
|
|
52
|
+
The `agents` target works for agents that read `~/.agents/skills`. Use
|
|
53
|
+
`--target claude` for Claude Code, or omit the target for Codex. Add `--scope project`
|
|
54
|
+
inside a repository for a project-only install. Start a new
|
|
55
|
+
agent session so it loads the skill, then ask for a result:
|
|
56
|
+
|
|
57
|
+
> Create a two-box diagram showing ingestion flowing into review, render it,
|
|
58
|
+
> and show me the dark PNG.
|
|
59
|
+
|
|
60
|
+
Setup guides: [Claude Code](https://slopcamera.com/docs/tutorials/claude-code) ·
|
|
61
|
+
[Codex](https://slopcamera.com/docs/tutorials/codex) ·
|
|
62
|
+
[Other agents](https://slopcamera.com/docs/tutorials/other-agents) ·
|
|
63
|
+
[MCP clients](https://slopcamera.com/docs/tutorials/mcp). Native engines such as
|
|
64
|
+
Blender install separately; the
|
|
65
|
+
[capability reference](docs/reference/capabilities.md) lists what each
|
|
66
|
+
technique needs.
|
|
67
|
+
|
|
68
|
+
From 3.8.0, SlopCamera is a CLI with no menu-bar app or background process.
|
|
69
|
+
`slopcamera status` shows what is running, how the last job ended, your last
|
|
70
|
+
known credits balance, the newest outputs and whether the retired menu-bar
|
|
71
|
+
companion still opens at login. `slopcamera tui` keeps
|
|
72
|
+
that screen open and refreshes it; `slopcamera tui --snapshot` prints it once
|
|
73
|
+
and `--json` returns the data. `slopcamera outputs list|open|reveal` lists the
|
|
74
|
+
newest outputs or opens one on this Mac, `slopcamera commands --json` lists
|
|
75
|
+
every command with what it may change, and `slopcamera legacy retire` stops
|
|
76
|
+
the retired menu-bar companion opening at login by moving its LaunchAgent aside; it
|
|
77
|
+
deletes nothing, and `slopcamera doctor` prints the command that restores it.
|
|
78
|
+
|
|
79
|
+
<details>
|
|
80
|
+
<summary>Build from source</summary>
|
|
81
|
+
|
|
82
|
+
Install Git as well, then use a new checkout:
|
|
76
83
|
|
|
77
84
|
```sh
|
|
78
85
|
git clone --branch main https://github.com/hraness/slopcamera.git slopcamera-source
|
|
@@ -83,8 +90,8 @@ bun run build:sdk
|
|
|
83
90
|
bun run build:desktop:cli
|
|
84
91
|
```
|
|
85
92
|
|
|
86
|
-
Keep the checkout and recorded commit. In this shell, define the command
|
|
87
|
-
that exact build:
|
|
93
|
+
Keep the checkout and recorded commit. In this shell, define the command
|
|
94
|
+
against that exact build:
|
|
88
95
|
|
|
89
96
|
```sh
|
|
90
97
|
export SLOPCAMERA_SOURCE_ROOT="$PWD"
|
|
@@ -94,40 +101,17 @@ slopcamera doctor --json
|
|
|
94
101
|
slopcamera skill install --target agents
|
|
95
102
|
```
|
|
96
103
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
Native engines install separately. The [source-install guide](docs/how-to/use-current-source.md)
|
|
103
|
-
explains workspace placement and durable-run identity; the
|
|
104
|
-
[capability reference](docs/reference/capabilities.md) names runtime requirements.
|
|
105
|
-
|
|
106
|
-
SlopCamera is a CLI. On macOS, an optional unbundled menu-bar companion shows
|
|
107
|
-
what SlopCamera is rendering, how the last job ended, your last known credits
|
|
108
|
-
balance and the newest files in the agent outputs directory; `slopcamera menubar` runs a prebuilt
|
|
109
|
-
companion directly and does not install or launch an application bundle. The
|
|
110
|
-
companion is a thin product binary over the shared
|
|
111
|
-
[desktop-foundation](https://github.com/hraness/desktop-foundation) crate, pinned
|
|
112
|
-
by immutable tag. Build it explicitly with
|
|
113
|
-
`cargo build --release --manifest-path desktop/menubar/Cargo.toml`
|
|
114
|
-
when working from source.
|
|
115
|
-
|
|
116
|
-
<details>
|
|
117
|
-
<summary>Historical Atet release evidence</summary>
|
|
118
|
-
|
|
119
|
-
[Atet v3.2.3](https://github.com/hraness/atet/releases/tag/v3.2.3) and its
|
|
120
|
-
[original archive](https://github.com/hraness/atet/releases/download/v3.2.3/hraness-atet-3.2.3.tgz)
|
|
121
|
-
remain historical publication evidence. Those immutable bytes install Atet,
|
|
122
|
-
not SlopCamera. Renaming the repository does not create a renamed package or
|
|
123
|
-
change an existing release.
|
|
104
|
+
The skill comes from the same checkout as the CLI. In a later shell, restore
|
|
105
|
+
the checkout path and function. The
|
|
106
|
+
[source-install guide](docs/how-to/use-current-source.md) covers workspace
|
|
107
|
+
placement and resuming long runs.
|
|
124
108
|
|
|
125
109
|
</details>
|
|
126
110
|
|
|
127
111
|
## Make your first diagram
|
|
128
112
|
|
|
129
|
-
|
|
130
|
-
|
|
113
|
+
This local task needs no model account. In a new directory, create the
|
|
114
|
+
included diagram, check it, and render it:
|
|
131
115
|
|
|
132
116
|
```sh
|
|
133
117
|
mkdir slopcamera-first
|
|
@@ -139,243 +123,245 @@ slopcamera diagram render first.diagram.json
|
|
|
139
123
|
|
|
140
124
|
You now have `example-flow.tldr`, `example-flow.light.svg`,
|
|
141
125
|
`example-flow.dark.svg`, `example-flow.light.png`, and
|
|
142
|
-
`example-flow.dark.png`.
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
> before rendering the video.
|
|
126
|
+
`example-flow.dark.png`. The JSON stays editable, and the `.tldr` file opens in
|
|
127
|
+
tldraw. Rendering again replaces those five files.
|
|
128
|
+
|
|
129
|
+
<picture>
|
|
130
|
+
<source media="(prefers-color-scheme: dark)" srcset="apps/web/media/source-to-film-dark-png-b8db55ec6e42.png">
|
|
131
|
+
<img alt="Diagram export, rendered scene, and footage point into Project, which points to Preview and Delivery." src="apps/web/media/source-to-film-light-png-c3c24c460490.png">
|
|
132
|
+
</picture>
|
|
133
|
+
|
|
134
|
+
The diagram above was rendered from one
|
|
135
|
+
[JSON file](examples/showcase/diagram/source-to-film.diagram.json). Each box in
|
|
136
|
+
it is a short object the agent writes:
|
|
137
|
+
|
|
138
|
+
```json
|
|
139
|
+
{
|
|
140
|
+
"id": "diagram",
|
|
141
|
+
"type": "rect",
|
|
142
|
+
"x": 100,
|
|
143
|
+
"y": 140,
|
|
144
|
+
"width": 320,
|
|
145
|
+
"height": 140,
|
|
146
|
+
"radius": 24,
|
|
147
|
+
"label": "Diagram export",
|
|
148
|
+
"labelFontSize": 36,
|
|
149
|
+
"labelWeight": 500,
|
|
150
|
+
"tone": "blue"
|
|
151
|
+
}
|
|
152
|
+
```
|
|
170
153
|
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
meshes. See [Directed scenes](docs/spatial-scenes.md).
|
|
154
|
+
To revise it, the agent changed one label, and the file name for the new
|
|
155
|
+
outputs, in a
|
|
156
|
+
[copy of that file](examples/showcase/diagram/source-to-film-revised.diagram.json):
|
|
175
157
|
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
158
|
+
```diff
|
|
159
|
+
- "name": "source-to-film",
|
|
160
|
+
+ "name": "source-to-film-revised",
|
|
161
|
+
...
|
|
162
|
+
- "label": "Delivery",
|
|
163
|
+
+ "label": "Social delivery",
|
|
164
|
+
```
|
|
182
165
|
|
|
183
166
|
```sh
|
|
184
|
-
slopcamera
|
|
185
|
-
slopcamera scene direction gallery direction.json --scene world.json --axis camera --output gallery.json --json
|
|
186
|
-
slopcamera workflows plan cinematic-world --input pack-input.json --json
|
|
167
|
+
slopcamera diagram render source-to-film-revised.diagram.json
|
|
187
168
|
```
|
|
188
169
|
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
170
|
+
That two-line change produced a new `.tldr` file, both SVGs, and both PNGs,
|
|
171
|
+
including the
|
|
172
|
+
[revised light PNG](apps/web/media/source-to-film-revised-light-png-9ad9767c2bdf.png).
|
|
173
|
+
[Your first diagram](https://slopcamera.com/docs/tutorials/first-diagram) walks
|
|
174
|
+
through the same edit.
|
|
175
|
+
|
|
176
|
+
## What SlopCamera does
|
|
177
|
+
|
|
178
|
+
Each technique pairs a short source file the agent writes with commands that
|
|
179
|
+
render and check it. The
|
|
180
|
+
[techniques reference](https://slopcamera.com/docs/reference/techniques) lists
|
|
181
|
+
them all with their requirements.
|
|
182
|
+
|
|
183
|
+
| Technique | The agent writes | SlopCamera renders | Example |
|
|
184
|
+
| --- | --- | --- | --- |
|
|
185
|
+
| Diagrams | Diagram JSON | `.tldr`, light and dark SVG and PNG, after a strict check | [Pipeline](https://slopcamera.com/docs/tutorials/first-diagram#stack-layout) |
|
|
186
|
+
| Vector tracing | A path to a raster image | SVG traced locally with VTracer (macOS and Linux) | [Color and duotone](https://slopcamera.com/docs/how-to/vectorize-images#inspect-a-reproducible-example) |
|
|
187
|
+
| Motion graphics | An HTML scene in one of seven profiles: plain, Motion, p5, Two, Paper Shaders, Three.js, vgpu (WGSL) | H.264 MP4 with optional local audio | [Kinetic type](https://slopcamera.com/docs/how-to/render-motion-graphics#animate-type-with-motion) |
|
|
188
|
+
| Music-timed motion | An HTML scene, a local track, and its tempo in BPM | Motion timed to the declared tempo; beats are not detected from the audio | [Island Pulse](https://slopcamera.com/docs/how-to/music-video#inspect-the-island-example) |
|
|
189
|
+
| 3D scenes | Scene JSON with parts, media, and named cameras | Stills, contact sheets, and video, with orbit, dolly, crane, and rail moves | [Camera orbit](https://slopcamera.com/docs/how-to/direct-scenes#orbit-around-live-media) |
|
|
190
|
+
| Parametric design | Named dimensions and constraints | Geometry and a scene you can re-render at new sizes | [Pavilion](https://slopcamera.com/docs/how-to/parametric-design#crescent-pavilion) |
|
|
191
|
+
| Native films | A Blender, CadQuery, or Manim program from a starter | Frames and video from your installed engines | [Product film](https://slopcamera.com/docs/tutorials/first-native-film#inspect-the-finished-example) |
|
|
192
|
+
| Explainer video | A Manim scene, captions, and a presenter | A lesson video with typeset math | [Geometry lesson](https://slopcamera.com/docs/how-to/educational-video#inspect-the-finished-example) |
|
|
193
|
+
| Footage edits | Cuts, captions, reframes, and color as project decisions | 16:9, 9:16, 1:1, and 4:5 exports from one edit | [Four formats](https://slopcamera.com/docs/how-to/edit-video#landscape-delivery) |
|
|
194
|
+
|
|
195
|
+
Model-backed generation of images, video, and speech is available through your
|
|
196
|
+
own provider access, and cinematic effects, particles, and character
|
|
197
|
+
performance can be planned from source. The gallery has no rendered examples
|
|
198
|
+
of these yet.
|
|
194
199
|
|
|
195
200
|
### Film native worlds and educational animation
|
|
196
201
|
|
|
197
|
-
SlopCamera can direct Blender for
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
remain native. Blender and Python environments are installed separately, and
|
|
202
|
+
SlopCamera can direct Blender for sets, materials, lighting, skinned
|
|
203
|
+
characters, cloth, and liquid caches; CadQuery for parametric solids and STEP;
|
|
204
|
+
and Manim Community for mathematical animation. Seven editable starters
|
|
205
|
+
include a product, character, shaded street, cloth, liquid, CAD bracket, and
|
|
206
|
+
educational presenter. Watch the
|
|
207
|
+
[six-second product film](https://slopcamera.com/docs/tutorials/first-native-film),
|
|
208
|
+
then change its [geometry, materials, and camera](examples/showcase/native/product).
|
|
209
|
+
For 2D motion, try the
|
|
210
|
+
[editable editorial animation](https://slopcamera.com/docs/tutorials/first-animation).
|
|
211
|
+
The [portrait geometry lesson](https://slopcamera.com/docs/how-to/educational-video)
|
|
212
|
+
adds mathematical typesetting, a presenter, and captions.
|
|
213
|
+
|
|
214
|
+
Native source runs as the current user. Blender and Python environments install
|
|
215
|
+
separately, and native
|
|
212
216
|
source execution requires explicit current-user trust. See [Native film studio](docs/studio.md)
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
###
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
[
|
|
225
|
-
|
|
226
|
-
render requests. Try the [editorial title](examples/showcase/html/editorial.json),
|
|
227
|
-
[kinetic typography](examples/showcase/html/kinetic-title.json), or
|
|
228
|
-
[Three.js island with original music](examples/showcase/html/island-pulse.json).
|
|
229
|
-
These source examples live in the current repository; `html render` ships in v3.2.8.
|
|
230
|
-
|
|
231
|
-
Use `slopcamera html catalog` to inspect the admitted local creative tools. The
|
|
232
|
-
[creative toolkit reference](docs/html-overlay-creative-toolkit.md) distinguishes
|
|
233
|
-
available profiles from upstream possibilities. vgpu does not enable shared GPU
|
|
234
|
-
textures or a Three WebGPU renderer inside the current WebGL2/Spark profile.
|
|
235
|
-
|
|
236
|
-
### Generate and direct media
|
|
237
|
-
|
|
238
|
-
Discover image, video, speech, and transcription models through your own Vercel
|
|
239
|
-
AI Gateway access. Set `AI_GATEWAY_API_KEY` in the local process environment;
|
|
240
|
-
the Vercel CLI is optional. Generate images from text and references, add a voiceover,
|
|
241
|
-
transcribe sound, or create video shots using the selected model's supported
|
|
242
|
-
inputs. Availability and pricing come from the live catalog.
|
|
243
|
-
|
|
244
|
-
Without a Gateway credential, prepaid Hraness Credits run prompt-only image
|
|
245
|
-
generation through the hosted API: `slopcamera credits topup` prints a hosted
|
|
246
|
-
checkout, `slopcamera credits wait` installs the returned device token, and
|
|
247
|
-
`slopcamera ai image generate --hosted` bills that wallet instead of your own
|
|
248
|
-
Gateway key. A stored token also routes `ai image generate` to the hosted API
|
|
249
|
-
automatically when no Gateway credential is configured.
|
|
250
|
-
|
|
251
|
-
The released CLI also provides `direct` shot recipes: retain a film
|
|
252
|
-
budget across attempts, review each take before accepting it, and use an accepted
|
|
253
|
-
clip's last decoded frame as the next shot's reference. Changed predecessors
|
|
254
|
-
invalidate affected continuations while earlier paid results remain retained.
|
|
255
|
-
Model continuity is reviewed, not guaranteed. Budget estimates are not a provider
|
|
256
|
-
billing cap.
|
|
257
|
-
|
|
258
|
-
See [Generate media](docs/how-to/generate-media.md), [Direct short generated clips](docs/directing-video.md),
|
|
259
|
-
and [Gateway configuration](docs/vercel.md). Generation uses caller-owned access;
|
|
260
|
-
uploading local references requires the matching explicit acknowledgement.
|
|
217
|
+
for the starters and engine requirements.
|
|
218
|
+
|
|
219
|
+
### Generate media
|
|
220
|
+
|
|
221
|
+
Discover image, video, speech, and transcription models through your own
|
|
222
|
+
Vercel AI Gateway access, with `AI_GATEWAY_API_KEY` set in the local process
|
|
223
|
+
environment. Generate images from text and references, add a voiceover,
|
|
224
|
+
transcribe sound, or create short video shots. Availability and pricing come
|
|
225
|
+
from the live model catalog. Without a Gateway key, prepaid Hraness Credits
|
|
226
|
+
run prompt-only image generation through the hosted API
|
|
227
|
+
(`slopcamera ai image generate --hosted`). See
|
|
228
|
+
[Generate media](docs/how-to/generate-media.md) and
|
|
229
|
+
[Direct short generated clips](docs/directing-video.md).
|
|
261
230
|
|
|
262
231
|
### Edit footage and deliver finished videos
|
|
263
232
|
|
|
264
233
|
Import existing footage or recording bundles. Remove pauses and filler words,
|
|
265
234
|
align sound, reframe speakers, zoom into screen actions, and add captions,
|
|
266
|
-
graphics, color, and audio treatment. Preview
|
|
267
|
-
|
|
268
|
-
from the same edit.
|
|
235
|
+
graphics, color, and audio treatment. Preview a candidate, then export clean
|
|
236
|
+
and captioned versions in each format from the same edit.
|
|
269
237
|
|
|
270
|
-
> Edit my product demo: cut the pauses, zoom into each important click, keep
|
|
271
|
-
> speaker framed, add captions and `logo.svg`, and show a preview before
|
|
238
|
+
> Edit my product demo: cut the pauses, zoom into each important click, keep
|
|
239
|
+
> the speaker framed, add captions and `logo.svg`, and show a preview before
|
|
240
|
+
> export.
|
|
272
241
|
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
and focused-input information. Automatic screen-action zooms need this metadata.
|
|
242
|
+
SlopCamera edits recordings you already have; it does not record the screen,
|
|
243
|
+
camera, or microphone.
|
|
276
244
|
Standalone media imports need an existing project; `html render`, `studio assemble`,
|
|
277
|
-
or `direct assemble` can create one. Read [`PRIVACY.md`](PRIVACY.md) before
|
|
278
|
-
sensitive material.
|
|
279
|
-
|
|
280
|
-
Start with [Edit a video](docs/how-to/edit-video.md) or inspect a reusable recipe:
|
|
245
|
+
or `direct assemble` can create one. Read [`PRIVACY.md`](PRIVACY.md) before
|
|
246
|
+
editing sensitive material. Eight built-in workflows package common jobs such as
|
|
247
|
+
social cuts and talking-head cleanup:
|
|
281
248
|
|
|
282
249
|
```sh
|
|
283
250
|
slopcamera workflows list --json
|
|
284
251
|
slopcamera workflows show social-variants --json
|
|
285
252
|
```
|
|
286
253
|
|
|
254
|
+
Start with [Edit a video](docs/how-to/edit-video.md) or
|
|
255
|
+
[Run workflows](docs/how-to/run-workflows.md).
|
|
256
|
+
|
|
287
257
|
## How SlopCamera works
|
|
288
258
|
|
|
289
|
-
|
|
290
|
-
simulation; a portable scene
|
|
291
|
-
|
|
292
|
-
SlopCamera connects
|
|
259
|
+
Each kind of work keeps its own source file. A native scene holds a rig or
|
|
260
|
+
simulation; a portable scene holds geometry, cameras, and media placement; a
|
|
261
|
+
diagram holds its shapes and labels; a video project holds cuts and delivery
|
|
262
|
+
settings. SlopCamera connects them through files: a rendered diagram can
|
|
263
|
+
appear on a screen in a 3D scene, and native frames can become a clip in a
|
|
264
|
+
video project.
|
|
293
265
|
|
|
294
|
-
1. **Prepare the sources.** Import footage and assets or author a scene,
|
|
295
|
-
or native program
|
|
266
|
+
1. **Prepare the sources.** Import footage and assets, or author a scene,
|
|
267
|
+
diagram, or native program from a starter.
|
|
296
268
|
2. **Direct the result.** Name cameras, shots, timing, composition, and output
|
|
297
269
|
settings. Generate missing media only when the job calls for it.
|
|
298
270
|
3. **Review a render.** Inspect contact frames, motion, captions, sound, and
|
|
299
|
-
continuity
|
|
300
|
-
4. **Deliver and revise.** Export the
|
|
301
|
-
project decisions
|
|
271
|
+
continuity, then select the version to keep.
|
|
272
|
+
4. **Deliver and revise.** Export the formats you need. The sources and
|
|
273
|
+
project decisions stay in place for the next change.
|
|
274
|
+
|
|
275
|
+
The same system is available four ways: the Bun CLI, the TypeScript SDK, the
|
|
276
|
+
Agent Skill, and an MCP server (`slopcamera mcp`) with a smaller fixed toolset.
|
|
302
277
|
|
|
303
278
|
### Instructions for coding agents
|
|
304
279
|
|
|
305
280
|
Read local project instructions and inspect sources before changing them. Use
|
|
306
|
-
`slopcamera --help`, `slopcamera doctor --json`,
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
281
|
+
`slopcamera --help`, `slopcamera doctor --json`,
|
|
282
|
+
`slopcamera operations list --json`, and the installed skill to discover the
|
|
283
|
+
exact local commands. Agree on output requirements, preview substantial
|
|
284
|
+
changes, inspect the resulting files, and report their paths. A successful
|
|
285
|
+
plan does not show that provider access, native trust, or model quality is in
|
|
286
|
+
place.
|
|
287
|
+
|
|
288
|
+
## Compared with other tools
|
|
289
|
+
|
|
290
|
+
Details as of 28 September 2026.
|
|
311
291
|
|
|
312
|
-
|
|
313
|
-
|
|
292
|
+
| | Agent writes | License | Cloud rendering | Choose it when |
|
|
293
|
+
| --- | --- | --- | --- | --- |
|
|
294
|
+
| SlopCamera | Diagram JSON, HTML scenes, scene JSON, Blender, CadQuery, or Manim programs, and video edits | MIT | Video renders on your machine; a hosted API checks and renders diagrams and generates images | One agent needs diagrams, 3D, native films, and footage edits in one local project |
|
|
295
|
+
| [Remotion](https://www.remotion.dev/) | React components | Source-available; free for individuals, non-profits, and organizations of up to 3 people | AWS Lambda in your account | Your team writes React and renders at scale |
|
|
296
|
+
| [HyperFrames](https://github.com/heygen-com/hyperframes) | HTML, CSS, and JavaScript animation | Apache 2.0 | HeyGen-hosted rendering or AWS Lambda | You want HTML motion graphics rendered to MP4 |
|
|
297
|
+
|
|
298
|
+
Remotion and HyperFrames have much larger communities. For a one-off image or
|
|
299
|
+
clip, a hosted app needs no install. Read
|
|
300
|
+
[SlopCamera vs Remotion](https://slopcamera.com/docs/explanation/slopcamera-vs-remotion),
|
|
301
|
+
[SlopCamera vs HyperFrames](https://slopcamera.com/docs/explanation/slopcamera-vs-hyperframes),
|
|
302
|
+
[Remotion alternatives for coding agents](https://slopcamera.com/docs/explanation/remotion-alternatives-for-coding-agents),
|
|
303
|
+
or [Why SlopCamera](https://slopcamera.com/docs/explanation/why-slopcamera).
|
|
314
304
|
|
|
315
305
|
## Important limitations
|
|
316
306
|
|
|
317
|
-
- **Runtime support varies.** The CLI
|
|
307
|
+
- **Runtime support varies.** The CLI runs with Bun on macOS, Linux, and Windows.
|
|
318
308
|
Media, browser, GPU, and native studio profiles
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
- **
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
- **
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
- **
|
|
331
|
-
|
|
332
|
-
|
|
309
|
+
need additional software, and vector tracing does not run on Windows. Run
|
|
310
|
+
`slopcamera doctor` and see the capability reference.
|
|
311
|
+
- **Checks do not judge quality.** A passing check or finished render shows
|
|
312
|
+
that the job ran, not that the result looks right. Models may also change a
|
|
313
|
+
subject's identity, motion, or text; review generated media.
|
|
314
|
+
- **Interchange keeps a supported subset.** Exporting a GLB does not turn a
|
|
315
|
+
native rig or simulation into an editable scene. An image or video on a
|
|
316
|
+
plane supplies pixels, not geometry.
|
|
317
|
+
- **Pixels can differ across machines.** Native tools, codecs, GPU drivers, and
|
|
318
|
+
provider models affect results, so the same source does not promise
|
|
319
|
+
identical output elsewhere.
|
|
320
|
+
- **Trusted code is not sandboxed.** Native Python and your own Bun workflows
|
|
321
|
+
run with the current user's access.
|
|
322
|
+
- **MCP is a subset.** Its 17 fixed tools check and render diagrams, plan and
|
|
323
|
+
audit scenes, and run six operation codes. It does not expose every CLI
|
|
324
|
+
command and never changes project state.
|
|
333
325
|
|
|
334
326
|
## Design and trust
|
|
335
327
|
|
|
336
|
-
There is no SlopCamera account
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
files you keep, and important operations record their inputs and outputs in
|
|
358
|
-
receipts, so a rendered result arrives with the record of how it was made: the
|
|
359
|
-
design every Hraness project shares. [The thread through
|
|
360
|
-
hraness](https://hraness.com/writing/the-thread-through-hraness) follows that
|
|
361
|
-
design across the projects, and the [ALGAL
|
|
328
|
+
There is no SlopCamera account or hosted project database. Video editing and
|
|
329
|
+
rendering run on your machine; the optional hosted API checks and renders
|
|
330
|
+
diagrams and generates images. Gateway generation and cloud
|
|
331
|
+
analysis use credentials from the local process and ask for your
|
|
332
|
+
acknowledgement before uploading named media. The optional hosted image API
|
|
333
|
+
runs each paid call in a short-lived workspace against a Hraness Credits device
|
|
334
|
+
token and keeps no credentials or projects; the token lives in owner-only files
|
|
335
|
+
and never appears in command arguments or operation records. The website never accepts a Gateway
|
|
336
|
+
credential.
|
|
337
|
+
|
|
338
|
+
Native Python requires separate authorization. Custom Bun workflow modules run
|
|
339
|
+
when loaded, including during check and plan, so review their source first.
|
|
340
|
+
Both run with the current user's access, including network access. Normal edit
|
|
341
|
+
operations leave original media unchanged, and important operations record
|
|
342
|
+
their inputs and outputs.
|
|
343
|
+
|
|
344
|
+
Read [Architecture](docs/architecture.md), [`SECURITY.md`](SECURITY.md),
|
|
345
|
+
[`PRIVACY.md`](PRIVACY.md), and [`NOTICE.md`](NOTICE.md) for details. Keeping
|
|
346
|
+
the source beside the result is the design every Hraness project shares; [The
|
|
347
|
+
thread through hraness](https://hraness.com/writing/the-thread-through-hraness)
|
|
348
|
+
follows it across projects, and the [ALGAL
|
|
362
349
|
vision](https://algal.computer/docs/vision/) states the bet behind it.
|
|
363
350
|
|
|
364
351
|
## Documentation
|
|
365
352
|
|
|
366
353
|
- **Learn:** [Your first diagram](docs/tutorials/first-diagram.md) · [Your first native film](docs/tutorials/first-native-film.md).
|
|
367
|
-
- **Make a result:** [Edit video](docs/how-to/edit-video.md) · [Generate media](docs/how-to/generate-media.md) · [Run workflows](docs/how-to/run-workflows.md) · [Educational video](docs/how-to/educational-video.md) · [Plan camera moves, lighting, and effects for a 3D scene](docs/how-to/direct-cinematic-worlds.md).
|
|
368
|
-
- **Look up support:** [
|
|
354
|
+
- **Make a result:** [Edit video](docs/how-to/edit-video.md) · [Generate media](docs/how-to/generate-media.md) · [Run workflows](docs/how-to/run-workflows.md) · [Educational video](docs/how-to/educational-video.md) · [Plan camera moves, lighting, and effects for a 3D scene](docs/how-to/direct-cinematic-worlds.md) · [Direct visual styles](docs/how-to/direct-visual-styles.md).
|
|
355
|
+
- **Look up support:** [Techniques](https://slopcamera.com/docs/reference/techniques) · [Capabilities](docs/reference/capabilities.md) · [SDK entrypoints](docs/reference/sdk.md) · [Creative tools](docs/html-overlay-creative-toolkit.md).
|
|
369
356
|
- **Understand the system:** [Architecture](docs/architecture.md) · [Native studio](docs/studio.md) · [Directed scenes](docs/spatial-scenes.md) · [Extension architecture](docs/extension-architecture.md).
|
|
370
357
|
|
|
371
|
-
The [documentation index](docs/README.md) connects these paths
|
|
358
|
+
The [documentation index](docs/README.md) connects these paths, and
|
|
359
|
+
[slopcamera.com/docs](https://slopcamera.com/docs) publishes them.
|
|
372
360
|
|
|
373
|
-
|
|
361
|
+
### Use the SDK
|
|
374
362
|
|
|
375
363
|
Run this example with Bun from the source checkout after `bun run build:sdk`.
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
SDK imports do not start the CLI or inspect local project state. For example,
|
|
364
|
+
SDK imports do not start the CLI or read local project state. For example,
|
|
379
365
|
convert an existing local image into an SVG:
|
|
380
366
|
|
|
381
367
|
```ts
|
|
@@ -386,9 +372,9 @@ console.log(result.receipt.sourceSha256, result.receipt.svgSha256)
|
|
|
386
372
|
```
|
|
387
373
|
|
|
388
374
|
Use `@hraness/slopcamera/code` for declarative workflow graphs,
|
|
389
|
-
`@hraness/slopcamera/workflow` for trusted Bun workflows, and
|
|
390
|
-
for the local media engine. See the
|
|
391
|
-
|
|
375
|
+
`@hraness/slopcamera/workflow` for trusted Bun workflows, and
|
|
376
|
+
`@hraness/slopcamera/local/*` for the local media engine. See the
|
|
377
|
+
[SDK reference](docs/reference/sdk.md).
|
|
392
378
|
|
|
393
379
|
## Verification
|
|
394
380
|
|
|
@@ -397,11 +383,11 @@ bun install --frozen-lockfile --ignore-scripts
|
|
|
397
383
|
bun run check
|
|
398
384
|
```
|
|
399
385
|
|
|
400
|
-
The
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
386
|
+
The check covers the public SDK, the local runtime, schemas, the Agent Skill,
|
|
387
|
+
generated entrypoints, the website, deterministic and property tests, and
|
|
388
|
+
installs of the packed package. Native engines and model providers need their
|
|
389
|
+
own runs on real hardware and accounts; a local test pass does not cover them.
|
|
390
|
+
See [`CONTRIBUTING.md`](CONTRIBUTING.md) for every check.
|
|
405
391
|
|
|
406
392
|
## Contributing
|
|
407
393
|
|
|
@@ -415,17 +401,20 @@ changing a package or runtime boundary. Report vulnerabilities through
|
|
|
415
401
|
|
|
416
402
|
## Optional support
|
|
417
403
|
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
404
|
+
Every feature works without payment. `slopcamera support` shows an optional way
|
|
405
|
+
to support development and opens no browser. `support dismiss` opts out across
|
|
406
|
+
the local suite, `support snooze` pauses the notice for 30 days, and
|
|
407
|
+
`HRANESS_SUPPORT_AUDIENCE=off` disables ambient notices. Agents follow the
|
|
408
|
+
[support reference](skills/slopcamera/references/support.md).
|
|
409
|
+
|
|
410
|
+
## Former name
|
|
411
|
+
|
|
412
|
+
<details>
|
|
413
|
+
<summary>Historical Atet release evidence</summary>
|
|
414
|
+
|
|
415
|
+
SlopCamera was called Atet until September 2026.
|
|
416
|
+
[Atet v3.2.3](https://github.com/hraness/atet/releases/tag/v3.2.3) and its
|
|
417
|
+
[original archive](https://github.com/hraness/atet/releases/download/v3.2.3/hraness-atet-3.2.3.tgz)
|
|
418
|
+
still install Atet, not SlopCamera.
|
|
419
|
+
|
|
420
|
+
</details>
|