AI tools: More tools
Everything else your AI can call. 11 tools. You see every step your AI takes and can undo any of them.
direct_sequence
The AI director: writes a whole cut of the scene as a director and a cinematographer would shoot it, in a style (trailer: fast cuts on the beat, anamorphic, low hero angles, every shot moving; drama: long takes, slow push-ins, the focus on whoever speaks; horror: slow creeping pushes, low and dutch angles, sudden close cuts, shallow focus; documentary: handheld, a zoom, natural pacing). It opens on a shot that establishes the subjects, then covers them in the style's sizes (wide to extreme close-up), each framed with the eyes on the upper third and lead room where they look, every camera on one side of the line between the two subjects so screen direction never flips, no jump cuts, the lens for each size from the style's kit, rigs and moves, the focus on the eyes, the style's film; cuts on the music's beat when music is given. Replaces Sequences/<name>. Returns the shot list; render_sequence shows it.
| Argument | Type | What it does |
|---|---|---|
action | string | A sequence holding the action to cover (who walks where: its tracks and events, its length): the cut keeps them, with the director's cameras and focus in place of its own. |
length | number | Seconds (default 12). |
music | string | An audio file in the project to cut on its beat (wav, aiff, m4a, mp3). |
name required | string | The sequence to write (Sequences/<name>.sequence.json; replaced). |
seed | integer | Another take: a different side of the line, angles and pacing (default 1). |
style | trailer / drama / horror / documentary | How it's shot (default drama). |
subjects | list of string | Who it's about, one or two (default: the first two characters in the scene). |
gpu_driven
GPU-driven culling and detail for still objects (a city's buildings and blocks): when a scene has enough plain still models (default 1,024), the GPU tests each one against the view, last frame's depth and the sun's cascades, picks its detail level with the CPU's own rules, places it and writes indirect draw arguments, instead of the CPU doing it per object every frame. Reports how many objects, archetypes and buckets it handles, what the GPU drew and left out last frame, and the CPU cost of keeping its copy. Switch it off and on (enabled), change the threshold (minimum) or its occlusion test, to A/B with frame_profile.
| Argument | Type | What it does |
|---|---|---|
enabled | boolean | GPU-driven still objects (default on; off: the CPU path for everything, A/B). |
metal4 | boolean | Encode the passes on Metal 4 (an MTL4 queue with an argument table and a residency set, ordered by events) instead of the Metal 3 encoder (default off until measured; TTR_GPU_DRIVEN_MTL4=1). |
minimum | integer | Qualifying objects a scene needs before the GPU path takes them (default 1024). |
occlusion | boolean | Leave out objects wholly behind last frame's depth pyramid (default on; it stands down while the camera moves fast). |
look_through
Look through a camera object (one with cine_camera): the editor's viewport becomes that camera, its place and its body and lens (field of view from the sensor, depth of field at its stop and focus, distortion, fall-off and bokeh), live, with the viewfinder's frame lines and guides over the picture; flying the view then moves the camera (each flight is one undo). camera "off" goes back to the editor's own camera. Also sets the viewfinder: frame_lines (full, 2.39 scope, 2.00, 1.85 flat, 16:9, 1.43 IMAX, 4:3, 9:16 vertical, or w:h) and guides (thirds, safe_areas, center, horizon). See it with editor_window_shot.
| Argument | Type | What it does |
|---|---|---|
camera | string | The camera object's name; "off" ends looking through. Leave out to change only the viewfinder. |
frame_lines | string | full, 2.39, scope, 2.00, 1.85, flat, 16:9, 1.43, imax, 4:3, 9:16, vertical, or w:h. |
guides | list of thirds / safe_areas / center / horizon | The guides to show ([] for none). |
peaking | boolean | Focus peaking: mark what is in focus over the picture. (To make the focus follow a character's nearer eye, set the camera's cine_camera focus_target with edit_entity.) |
make_creek
Cut a creek into the land in one undoable step: from `start` [x, z] it finds its way downhill (`length` m), winds (`meander` 0...1), and sits in a real channel: the water `bank_height` (0.3-0.6 m) under its bank tops, sloped banks that take the land's own ground, a wet gravel bed, round stones in the bed (some breaking the surface) and along its edges. Width varies between `width` [min, max] m. The land opens along it and a fine channel mesh fills the opening (seamless at its edge, solid to walk on); the river water follows it. Answers with a camera on it and its first centreline point. HTTP calls return a job_id immediately; read progress and the final result with tool_job instead of repeating the tool.
| Argument | Type | What it does |
|---|---|---|
bank_height | number | Bank top over the water, metres (default 0.45). |
clarity | number | Metres you see into it (default 10). |
depth | number | Water depth in the middle, metres (default 0.45). |
flow | number | m/s (default 1.2). |
foam | number | 0...1 (default 0.35). |
length | number | Metres (default 600; it stops sooner where the land gives no way down). |
meander | number | How much it winds, 0 straight ... 1 (default 0.6). |
name | string | |
ripples | number | 0...1 (default 0.6). |
seed | integer | |
start required | list of number | [x, z] world: where it starts (it runs downhill from there). |
stones | number | Stones per 10 m (default 2; 0 none). |
terrain | string | The terrain object's name. Default: the first terrain. |
width | list of number | [min, max] water width, metres (default [1.8, 3.5]: a woodland brook). |
metal4
Apple GPU features in use, and switches for A/B (Open City lane F): this Mac's Metal 4 support (placement sparse textures need macOS 26.4+ and the GPU's supportsPlacementSparse), the scene residency set (models' buffers held once instead of handed to every encoder every frame: members, commits, per-frame uses it saved), placement sparse texture streaming (maps, heap and mapped megabytes, levels streamed up and down), MetalFX (on, why, at what scale) and how many render targets live only in tile memory (memoryless).
| Argument | Type | What it does |
|---|---|---|
residency_sets | boolean | Scene residency set in place of per-frame useResources (default on where macOS 15+; off: the old calls, A/B). |
placements_build_slods
Makes a placements object's merged far levels (the GTA chain's SLOD1-3): its copies merged into one flat-coloured model per 128 m cell (SLOD1), per 256 m (SLOD2) and per 512 m group (SLOD3), small things left out and simplified to a triangle budget per level, written under Assets/HLOD/<name>/ with an index (slods.txt). Past slod1 / slod2 / slod3 metres a cell or group then draws as one model instead of its copies, through a dithered cross-fade. Rebuild after the placements change.
| Argument | Type | What it does |
|---|---|---|
folder | string | Under Assets (default HLOD/<name>). |
max_triangles | list of number | Per model at levels 1, 2, 3 (default [6000, 9000, 14000]). |
min_size | list of number | Copies smaller than this (m, longest side) are left out at levels 1, 2, 3 (default [3, 8, 16]). |
name | string | The placements object (default: the only one). |
shape | boxes / models | boxes (default): each copy one box in its model's average colour, GTA's far levels, a few MB; models: each copy's coarsest triangles merged (heavier: hundreds of MB for a city). |
slod1 | number | Metres past which SLOD1 shows (default 700; 0 off). |
slod2 | number | Default 1500 (0 off). |
slod3 | number | Default 3000 (0 off). |
placements_from_objects
Turns plain placed objects (only a place and a model: a city's buildings, a port's crates) into one placements object: the models listed once and a list file of where each copy stands, drawn as instance runs in cells (copies near the eye still draw as ordinary objects). Each object cost the frame about 3 µs of CPU; a placements object costs a line per cell and model. Objects with anything else on them (scripts, colliders, lights, attachments, glow), streamed cells' objects, and models with fewer than min_copies copies stay as they are. One undoable step.
| Argument | Type | What it does |
|---|---|---|
dry_run | boolean | Report what would change, change nothing. |
file | string | The list's project path. Default: Scenes/<scene>.placements/<name>.ttrplace. |
group | string | Only objects in a group starting with this ("Blockout_"). Default: any. |
min_copies | number | A model needs this many copies to be placed (default 2); rarer ones stay objects. |
models | string | Only objects whose model starts with this ("Forge/oc_kit_"). Default: any. |
name | string | The placements object's name (default "Placements"). |
replace | boolean | Overwrite an existing list file. |
population_status
The living city's budgets (the population object, Open City): which kind of place the player is in (population_zone boxes), the hour and where it comes from (the population clock, the scene's time of day, or the sun), weekday or weekend, the platform's budgets and density dial (Mac or Deck), how many pedestrians and cars the table allows round the player now and the pedestrian mix; in Play also how many are out, how many wait parked in the pools for reuse, and how many came and went. Out of Play: the settings and the zones. Set it with edit_entity: population { density 0.8 platform "deck" hour 13 } on any object, and population_zone { kind "downtown" size (400, 80, 300) } boxes; pedestrian templates are characters tagged pedestrian_template (ped:office, ped:tourist... pick the mix), cars tagged traffic_template.
No arguments.
scenario_place
Place or generate scenario points (people doing things at places; read them with scenario_points). action place: one point, or several with `points`: name, position, yaw (the way the person faces; for a parking spot the way the car's nose points), activity (a clip or work, kneel, use, pick_up, sit, talk, phone, lean, smoke, push), stay [min, max] seconds, users (pedestrian kinds: their templates' ped: tags), hours ("7-12, 13-19"), capacity, next (a chain: "Garage_Toolbox:2, Garage_Locker:1"), chain_only, vehicle (a parking spot: a traffic_template car pulls in and its driver gets out into the chain), grip, prop, group. action generate: the sets for the buildings in `area` [x, z, radius] by kind (garage: mechanic at the car, toolbox, locker, parking spot, customer; shop: window, smoking door, phone; office/hotel: smokers, talkers; house: porch; park: bench); `kind` forces one; buildings are found by their model (lane A's oc_kit_* names; plain blockout boxes only with a kind). People come from the city's pedestrians (characters tagged pedestrian_template, a population object in the scene).
| Argument | Type | What it does |
|---|---|---|
action required | place / generate | |
activity | string | |
area | list of number | generate: x, z and a radius in metres. |
capacity | number | |
chain_only | boolean | |
grip | string | |
group | string | |
hours | string | |
kind | string | generate: the building kind to use (garage, shop, office, hotel, house, park) instead of the model's. |
limit | integer | generate: most buildings (default 12). |
name | string | |
next | string | |
points | list of object | place: several points, each with the fields above. |
position | list of number | |
prop | string | |
stay | list of number | |
users | string | |
vehicle | boolean | |
yaw | number |
scenario_points
Scenario points (GTA-style: people doing things at places, cars pulling in), read only: the points (in `area` [x, z, radius] or all) with their activity, users, hours and chain; in Play also what's happening at them (people acting, walking to a point, cars pulling in, parked) and their cost per frame, then each person at them (where, walking to which point and how far, round a car, acting and for how long) and each scenario car (how far off its spot and its heading). Place or generate them with scenario_place.
| Argument | Type | What it does |
|---|---|---|
area | list of number | x, z and a radius in metres. |
limit | integer | Most points shown (default 40). |
seat_driver
Seat a character in a vehicle as its driver, measured: attached to the vehicle (rigid) facing its nose, scaled (driver_height_m: its standing height in metres, or height_to_length: that height over the vehicle's length), hips pinned on the seat, hands on the steering wheel and feet on the pedals by pose_character's IK, a tail routed clear, then a clip report: every bone's volume against every vehicle part, by name (over 1 cm is a clip; sitting on the seat, hands round the wheel and feet on the pedals are contact). Points come from the vehicle model's forge points (seat_0, grip_L, grip_R, pedal_L, pedal_R) or else its parts by name (Seat*, Steering_Wheel, Pedal*, Floor*): the reply says which. Vehicle space: metres in the vehicle's own axes, +Z its nose, +X its left, +Y up. It splits the steering wheel into its own object (split_wheel) and adds driver { } (alive): the hands follow the steering, the body leans into turns, bounces, looks into the corner, breathes and reacts (game.driverReact). Returns pictures from the side, the front and above.
| Argument | Type | What it does |
|---|---|---|
alive | boolean | Add driver { } so the driver moves with the vehicle in play (default true). |
driver required | string | The character to seat (a rigged object with an animator). |
driver_height_m | number | Scale the driver to this standing height (m). |
fit_wheel | boolean | Move the (split) steering wheel to the driver when it's out of a comfortable reach or in its body (default true). |
grips | object | Where the hands hold the wheel, vehicle space: {left: [x,y,z], right: [x,y,z]}. |
height_to_length | number | Scale the driver so its standing height is this share of the vehicle's length (a kart's racer about 0.75, read off the reference sheet). |
name | string | The seated pose clip's name (default <driver>_Seat). |
pedals | object | Where the feet go, vehicle space: {left: [x,y,z], right: [x,y,z]}. |
seat | list of number | The seat's top where the driver sits, vehicle space [x,y,z]. |
split_wheel | boolean | Make the steering wheel its own object so it turns (default true). |
still | boolean | Return pictures (default true). |
vehicle required | string | The vehicle (its root object; its parts are the objects attached to it). |
wheel | object | The steering wheel, vehicle space: {center: [x,y,z], axis: [x,y,z] (its column toward the driver)}. |