
Vork 推出面向智能体的无头 3D 与 VFX 引擎
来源标题:Vork: Headless 3D and VFX engine for agents
Vork 是一个专为 AI 智能体打造的无头 3D 与 VFX 引擎,用 Rust 和 Slang 编写,通过 Vulkan 和 Metal 实现 GPU 渲染。智能体可编写场景代码、渲染并查看结果后再修改代码,无需传统编辑器操作。该引擎目前处于研究预览阶段,源码开放且免费。
以下正文同步自 Hacker News 最新,版权归原站所有,已转换为易读排版。
A million birds, each steering itself over a lagoon. A black hole that bends light. A glowing seed placed on a real desk, lighting the room around it. These are scenes written as code and rendered on a GPU. No video model required.
vork is a headless 3D and VFX engine built for agents. It is written in Rust and Slang, with GPU rendering through Vulkan and Metal. An agent writes a scene, renders it, looks at the result and revises the code. There is no editor to drive.
Most creative tools expose controls that a person can operate. An agent can also write a shader in the middle of a shot. vork gives it geometry, ray queries and GPU execution, then lets scene programs define materials, cameras, light propagation, simulation and compositing. Ordinary shots need only scene data; the programming hooks are there when the shot needs something unusual.
Source-available and free during the research preview.
The examples include code, preparation commands and credits. Large downloaded assets and footage stay outside Git; the recipes fetch them or accept a local path. The images here are stills from these shots. Keep each credit with its image.
A million simulated agents steered by Slang compute programs, with a camera skimming through the flock. The camera and nine foreground birds are authored; the simulated million do not flap. The bird stills above come from the measured four-sample, denoised skim and reveal movies.
Credit: based on "Crow" by Alexei Ostapenko, CC BY 4.0. Changes: sampled flight pose, reduced distant mesh, rescaled, articulated flight wings, extracted wings for the starling body, resized textures. All bird and environment credits.
Original footage Tracked camera and proxy geometry Final look
A procedural ceramic-and-bronze seed, a tracked camera, occlusion mattes and proxy geometry for relighting. The example teaches the base composite; the final look adds later relighting and wipes. Real footage + rendered 3D; no generative video.
Credit: footage by Ron Lach / Pexels, modified under the Pexels Licence. Original performer; no endorsement implied. Source and preparation.
A suspended neon seed and blade sign added to a moving shot of an empty alley at night, with spill on the wall and reflections in the wet street. Real footage + rendered 3D; no generative video.
Credit: footage is "Ally" by Rafael Fernanz / Pexels, modified under the Pexels Licence. Source and preparation.
The scene supplies a Schwarzschild light-propagation program through vork's public hook. Curved paths, capture and the disk's appearance live in the example. It is a numerical approximation, not an exact relativistic solver.
Credit: based on "Corinth Cargo Transporter" by Yvo Pors, CC BY 4.0. Changes: decimated geometry, resized, compressed and exposure-adjusted textures, adjusted material roughness and metallic weight, placement and scale. Ship credit.
A moving camera, depth of field and daylight on detailed scanned assets. This shot is rendered 3D, using Poly Haven assets; it isn't a photographed take.
Credit: Poly Haven CC0 assets; carrot cake photography by Greg Zaal, processing by James Ray Cock. Full cake credits.
Nicole Morena's Blender 3.5 splash scene, imported into vork. The recipe uses a shared material adaptation and a camera orbit; the pictured render has additional staging and animated lighting.
Credit: Cozy Kitchen by Nicole Morena, source .blend, CC BY-SA (version unspecified by source). Adapted and rendered in vork: camera orbit, animated lighting, widescreen framing, material translation and staging changes. This still and the adapted animation are shared under CC BY-SA. No artist endorsement implied. Changes and share-alike notice.
A GPU liquid simulation implemented as Slang compute programs in vork's fluid library. It uses published APIC/FLIP and surface-reconstruction methods, with an authored initial impulse and limited secondary spray.
Start with vork help. The getting-started help is about 2,500 tokens, including a complete first scene. The full help is about 19,400 tokens. Those are help-text counts, not a claim that every advanced API fits on one page.
Read vork help. Make a small scene, render a preview and inspect the image. Refine the camera and lighting before rendering at final quality. Read the relevant help topic when you need a feature the first page doesn't explain.
Python and TypeScript can author ordinary scene JSON through the SDKs. You can also write JSON directly. Save this as shot.json (also available as examples/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]}}
vork render shot.json --profile std/previs --out preview.png vork render shot.json --profile std/final --out final.png vork help sdk vork help programs --all
Scene content and render quality are separate. Use std/previs to iterate, std/draft for scene-ray lighting at 4 samples, std/final for the default delivery profile, and std/path for path transport. Draft and final use 4 and 8 samples with bundled OIDN denoising by default; use --set denoise=false to turn it off. --set samples=N overrides the profile budget (1..4096); more samples means cleaner and slower. Without a fast GPU denoiser (NVIDIA or Apple GPU), draft and final say so and use 16 and 32 samples undenoised; --set denoise=true runs the slow CPU denoiser anyway. For a particular field, ask vork help field node.target. Help topics include exact fields with --all. Images, video and control passes come from the same scene; see vork help outputs.
Default rendering combines raster visibility with hardware ray-traced lighting; a path tracer is also available. The scene and render plan stay installed. Frames use retained GPU resources, with GPU-to-hardware-video encoding on supported native paths. A portable encoding fallback reads pixels back to the CPU.
Slang programs run on the GPU. Host parsing, planning, animation-track evaluation and IO still use the CPU. The public program hooks let a scene author change camera rays, material response, light propagation and film response without editing the renderer. vork help programs --all describes their scope.
Validation includes furnace tests and analytic oracles, alongside render tests. That is a way to catch errors, not a guarantee that every scene is physically exact.
These are timings, not equal-quality speedups. The draft/final results come from the frozen 81ae2b075 build on an NVIDIA L4: final uses eight samples and OIDN, draft four and OIDN. All 152 planned jobs were accounted for. The broader sweep delivered 583 of 585 images; the million-stars stress scene ran out of GPU memory in both profiles. Visual review found softer edges, grainier defocus, wall mottling and changed sparse or spectral highlights at these budgets. Nineteen earlier quality comparisons failed their declared no-worse FLIP condition; that experiment was not repeated for this build.
vork times below are complete command wall times, including startup, scene loading, output writes and encoding. Setup, shader warmup, provisioning and transfers are excluded. Stills use five warm repetitions, movies three. Driver caches and clocks were not controlled. Blender 5.2.1 times are retained measured baselines, not fresh runs: EEVEE uses different settings, and its movie times exclude startup/loading after a still prime. Both movie timings include encoding. The car is a proxy. Benchmark method and recorded results explain the boundaries and carried-forward numbers.
1080p PNG, seconds. EEVEE uses 64 samples without denoising; vork uses eight with OIDN. Missing Blender results are unmeasured, not wins.
240 frames, 1920×1080, 24 fps. These four public B-scene clips are part of the seven-scene comparison; the full seven measured 1.14–2.32× against EEVEE. Different quality and timing boundaries still apply.
These 1080p still timings were measured in an earlier freeze, not on that build. Adaptive sampling up to 4,096, threshold 0.01, minimum 64; stopping implementations differ. vork is slower in all three named cases.
On B-blocking.json, the final-profile setup took 250.792 s, the first still after setup 2.298 s, and the warm median 2.094 s. The retained EEVEE cold still was 20.633 s and warm median 2.405 s. Other scenes can still spend substantial time compiling new programs after setup: rack-focus's first final still took 82.057 s, versus its 1.787 s warm median.
These are prior-freeze std/previs results, not measured on 81ae2b075. Previews use different lighting and shadows; these are not final-quality comparisons. Complete 240-frame, 1080p24 movies, median of three warm commands:
Across the seven simple preview clips in that prior freeze, EEVEE/vork was 14.63–36.40× and Workbench/vork 3.99–11.24×. Those ranges use retained Blender baselines and different rendering settings and timing boundaries. They do not describe default final rendering.
The bird inputs include the compute programs and all three cameras. These std/draft movies use four samples and OIDN at 1080p24; each number is the median of three full commands. The first full movie is included in that three-command median, after a separate 320×180 still warmup. Setup and warmup are excluded from the movie times below.
The EEVEE values extrapolate eight warm frames; they are projections, not measured movies. They omit simulation, startup and video encoding, and receive the finished flock as geometry. They use 16 samples against vork's four, so this table is not a like-for-like speed comparison.
The matching four-sample EEVEE projection exists only for skim: 773.7–1,082.5 s across the retained runs, with ray tracing on or off, about 8–11× the 96.9 s vork movie. Dive and reveal have no four-sample EEVEE projection. Quality, material translation and motion differ.
python3 benchmarks/fetch.py python3 benchmarks/run.py --vork vork --out /tmp/vork-benchmark python3 integrations/blender/benchmark.py --blender blender --out /tmp/blender-benchmark
These recipes use the current shipped profiles and their own documented timing boundaries; they are not the exact harness behind the numbers above. Compare results only with recorded builds, settings and cache state. See the method.
Fog and participating volumes are ignored with warnings in this release. Large scenes and dense transparency can fail, including on Mac; reducing image resolution alone does not necessarily fix them. Some heavy interiors work with std/path when the default hybrid profile fails. First use of a new program can involve substantial compilation, even after vork setup.
At four/eight samples, fine facades and hair can lose detail, defocus can show stepped or grainy edges, and sparse sparks or spectral highlights can change brightness and colour. Try --set samples=32 for these shots; more samples cost more time. The frozen sweep retained a million-stars allocation failure in both profiles. Mac reliability was not revalidated in that Linux run.
The water quickstart is a closed-shutter diagnostic. The full motion-blurred scene is much more expensive. It is a uniform-grid experiment with finite particle budgets, unresolved thin features and no two-way rigid-body coupling. It is not a general replacement for a mature simulation package. The VFX camera solve and single-view relief are estimates, with limitations documented beside the example.
The next direction is fog and volumes, broader simulation, and better reliability and performance on demanding scenes. There is no release date promised for those fe
正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。