voyager-so/vork
Media & DesignHeadless GPU 3D and VFX renderer that agents drive by writing scene JSON and shader programs.
What it is
vork is a headless 3D and VFX engine: there is no editor, and the intended driver is an agent or script that writes a scene, renders it, inspects the image and revises the scene. Scenes are JSON; materials, cameras, light propagation, simulation and compositing can be extended with Slang programs that run on the GPU. Rendering targets Vulkan on Linux and Windows and Metal on Apple Silicon, combining raster visibility with hardware ray-traced lighting, with a path tracer also available.
The bundled examples show what the engine is aimed at: a million Slang-steered birds over a lagoon, VFX composited onto real footage, a Schwarzschild-style black-hole lensing shot, product-style renders of scanned assets, a Blender splash scene imported into vork, and a GPU liquid simulation examples.
Quick start
Pick a release build for your platform from the releases page, then verify vork --version works and run vork help — the getting-started help is about 2,500 tokens and includes a complete first scene help guidance.
Save a scene as shot.json, for example the bundled first-scene.json:
{"version":2,"nodes":[
{"type":"mesh","geometry":{"std":"sphere","radius":1},
"materials":[{"inputs":{"base_color":[0.12,0.35,0.65],"specular_roughness":0.3}}]},
{"type":"mesh","translation":[0,-1,0],"geometry":{"std":"grid","size":[10,10]},
"materials":[{"inputs":{"base_color":[0.35,0.35,0.35]}}]},
{"type":"light","shape":"rectangle","translation":[-3,5,4],"target":[0,0,0],
"energy":700,"size":4,"color":[1,0.92,0.8]},
{"type":"camera","translation":[3,2,5],"target":[0,0,0]}
],"render":{"resolution":[640,480]}}
Then render a preview and a final still:
vork render shot.json --profile std/previs --out preview.png
vork render shot.json --profile std/final --out final.png
The first render of a scene with new programs may compile for several minutes without output; that is not a hang. For a movie, pass a frame range such as --frame-start 0 --frame-end 47 --out clip.mp4 render examples.
Profiles, samples and denoising
std/previs is for iteration; std/draft uses 4 samples and std/final 8 samples with bundled OIDN denoising by default. --set samples=N overrides the per-profile budget (1–4096), and --set denoise=false disables denoising. On machines without a fast GPU denoiser, draft and final fall back to 16 and 32 undenoised samples. Scene-level object names and quality profiles are separate, so a shot can be moved from preview to final without changing its content profiles.
Platform and hardware requirements
- Linux: x64, glibc 2.35+ (Ubuntu 22.04+), a recent NVIDIA GPU and a Vulkan driver with hardware ray tracing. FFmpeg is required for MP4 muxing.
- Windows: x64 Windows 10/11, a recent NVIDIA GPU with the same Vulkan requirement, and FFmpeg on
PATH. - Mac: Apple Silicon only; Intel Macs are unsupported. H.264 uses VideoToolbox, so FFmpeg is optional.
The installers verify the release checksum, install under the user's home directory and run vork setup, which can compile for about 3 minutes without output. Rerun vork setup after upgrading vork or changing GPU drivers install notes. Keep the whole install folder together — Slang, OIDN, libraries, examples and SDKs are runtime companions to the binary.
SDKs and scene authoring
Scenes can be written as JSON directly, or authored through the bundled Python and TypeScript SDKs. They install from the vork installation folder, not from PyPI or npm: python3 -m pip install "$HOME/.local/lib/vork/python" and npm install "$HOME/.local/lib/vork/sdk" (Node 22.18+). The npm package named vork is unrelated SDK install.
Research-preview limits
This is a research preview. Fog and participating volumes are ignored with warnings. Large scenes and dense transparency can fail, including on Mac. At 4/8 samples, fine facades and hair can lose detail, defocus can show grainy edges, and sparse highlights can shift in brightness and colour; more samples cost more time. The liquid simulation is a uniform-grid experiment without two-way rigid-body coupling and is not a general replacement for a mature simulation package. The camera solve and single-view relief in the VFX example are estimates. The black-hole shot is a numerical approximation, not an exact relativistic solver. Read vork help limits before committing to a shot limits.
Benchmarks and claims
The README publishes timings against Blender's EEVEE and Cycles, but explicitly labels them as not equal-quality speedups: sample counts, denoising, setup and transfer boundaries differ, and some comparisons are carried forward from earlier builds or projected, not measured. The path tracer is slower than Cycles in the three named cases. Recorded methodology and results are in benchmarks/RESULTS.md.
HotRepo's take
vork entered HotRepo's new-project list on the Rust list on 2026-11-06 with 119 stars and 6 forks, all gained within the first day of the repository's public window; there is no GitHub all-language daily rank recorded yet and no HN discussion data. With one day of history, the snapshot only supports the fact that it attracted attention quickly — it says nothing about sustained interest. The more useful signal for potential users is the breadth of the published material: multiple finished example shots with credits, explicit failure reports (out-of-memory on the million-stars scene, Mac reliability not revalidated), and benchmark caveats, which make it possible to judge fit against the limitations rather than the star count.
Written by AI from the project's README, updated . The project's own docs are the source of truth.