Tomorrow Lives Engines

com.tomorrowlives/engines

Reproducible, IP-clean assets for agents: seven engines, from print designs to voice and video.

Yes, your AI can use this right now.Answered a live MCP handshake in 114 ms with no sign-in needed and exposes 57 tools.

Connect it

Settings → Connectors → Add custom connector
URL: https://tomorrowlives.com/api/agents/mcp

57 tools, verified live

Pulled straight from the server with tools/list on 2026-10-17.
art_schemaread-only

Every key, range and word a print design may use. Call this first when designing a print. Costs no units.

art_presetsread-only

The canvas presets: shirt-front 4500x5400, shirt-pocket 1200x1200, sticker 2400x2400, poster 5400x7200, all at 300 DPI. Costs no units.

art_materialsread-only

The shipped material library: each id, a line on its look, and whether it is a metal. Any id here can fill a layer or be baked. Costs no units.

art_starterread-only

A valid starting design for a canvas preset, ready to edit. Costs no units.

art_checkread-only

Checks a design without rendering it: ok, or one sentence naming the first problem and where it is. Costs no units.

art_render

Renders a design to a PNG with its DPI written in. Without width it renders the canvas at full print size (a shirt-front is 4500 x 5400). width renders a draft that many pixels wide. A render 1200 pixels wide or less costs 1 unit; anything wider costs 5. preview_width adds a small preview, and preview_on sets the shirt colour behind it. Returns print.png (and print.preview.png) as signed URLs.

art_swatch

Renders one material (a shipped id, or a whole material document) as a lit square swatch PNG. size is 64 to 1024 (default 512); 512 or less costs 1 unit, larger costs 2.

material_bake

Bakes a material (a shipped id, or a whole material document) to its seven channels (albedo, normal, roughness, metallic, height, emissive, ambient occlusion) as PNGs at res pixels square: 64, 128, 256, 512 or 1024 (default 256). 512 or less costs 1 unit; 1024 costs 2.

material_checkread-only

Checks a material document against the engine's strict reader: admissible, or the refusal. Costs no units.

material_costread-only

What baking a material document costs at res pixels square (default 256): operations and bytes. Costs no units.

material_apply

Applies a batch of ops (set_material, add_node, remove_node, set_node_param, connect, disconnect, set_out, add_ramp_stop, remove_ramp_stop, set_ramp_stop, add_curve_point, remove_curve_point, set_curve_point, clear_nodes) to a material document, whole or not at all. Returns the edited document or the refusal. Costs 1 unit.

form_starterread-only

A blank form document for a generator kind (growth, rock, face, blades, canopy, masonry, lathe, sweep, truss, frond), named by id. Costs no units.

form_checkread-only

Checks a form document against the sculptor's strict reader. Costs no units.

form_apply

Applies a batch of ops (set_form, set_generator, set_range, reset_range, clear_params) to a form document, whole or not at all. Costs 1 unit.

form_build

Builds a form (a shipped id such as scots-pine, oak or boulder, or a whole form document) at one variant and reports what the sculptor drew: the knob values for that variant and each level of detail's vertex and triangle counts. lod is near, mid, far or horizon. Costs 1 unit.

character_listread-only

The body kinds (person, dog, cat, rat, sheep), the levels of detail and each kind's gaits. Costs no units.

character_generate

Generates a character from a seed. A person is one of the game's townspeople: sex, age, complexion, hair, build and working clothes are drawn from the seed, and the body is sculpted as one surface with a face, hair and cloth. as makes the seed a foe, a machine, an android or a child, and presents chooses a woman or a man; age young, adult or old takes the first seed from seed on whose person the t

terrain_heightmap

Builds open country from a seed word and writes its ground as a greyscale PNG (row 0 is north; chunk (i, j) is 128 by 128 tiles). By default the picture is one chunk at 8 bits and black is its lowest tile, white its highest; bits 16 writes it at 16 bits (65535 greys, so a 40 unit relief steps by under a thousandth of a unit and a game's terrain built from it shows no stairs), and raw (true) also r

city_plan

Makes a city from a seed number and a size (the side of a square, 300 to 2000 metres, 800 by default): streets at varied spacing, closer together toward the centre, some of them curving, some ending at a cross street so blocks vary in size, an avenue every few, one or two diagonal avenues and usually a ring road. The town does not fill the square: it thins toward an outline of its own (answered as

world_schemaread-only

The ops world_apply accepts (add_zone, add_npc, add_quest, add_link, set_worldgen and the rest), each with its fields as JSON Schema: types, bounds, the closed lists of words and which keys are required. Printed from the same table the engine validates against, so it cannot drift from what is accepted. Pass op to get one op's schema alone. Costs no units.

world_starterread-only

A starter world document (two zones joined by a passage, a spawn, no quests) with the id and title given. The title passes the same scrubber world_apply uses: no markup, braces or web addresses. Costs no units.

world_checkread-only

Checks a world document with the engine's strict reader and its spatial rules (every spawn, passage, item and character stands on open ground reachable from the spawn; no two zones overlap; no door is under water). Answers ok with warnings, or the errors; the doors report says how many exits were examined. Costs no units.

world_apply

Applies a batch of ops (see world_schema) to a world document, in order. An op that cannot apply is rejected with its reason and changes nothing; if the result as a whole would not be a valid world, the whole batch rolls back and says why. Answers the edited document, what applied, what was rejected and the check of the result. Costs 1 unit.

world_heightmap

Draws the open country a world document generates (its worldgen block: seed, knobs, regions with their own relief, a ridge) as one greyscale PNG, row 0 north, so a world built with world_apply can be looked at before anyone walks it. area {w, h} makes a block of chunks from chunk (i, j) (w times h at most 25); range [lo, hi] fixes the grey scale in world units. The answer carries the height range,

voice_speak

Synthesises a line of English as a 44.1 kHz WAV with the engine's own voice. The voices are synthesised by the engine, never cloned from a recording, and no voice can be uploaded. seed varies the voice; woman, age (0 to 1) and machine shape it; speed (0.5 to 2) sets how fast it speaks (1 is the speaker's own); rate sets the sample rate. Every line comes back at one loudness (level_db, default -16

sound_listread-only

The twenty-one sounds (steps on twelve surfaces, doors and stairs, blows, thunder, splashes, a siren, animal calls, notes and the rest) with what each of a, b and c does, and the seven beds an ambience is mixed from. Costs no units.

sound_effect

Renders one sound from the engine's own synth as a stereo WAV, or an ambience of the beds mixed together. Give sound (a name from sound_list) with a, b and c as sound_list says, or give ambience: any of engine, air, surf, rain, drum, gull and creak, each 0 to 1, with seconds (1 to 30, default 10; loop true makes it seamless, its end crossfaded into its start, for a game that plays it on repeat; an

video_schemaread-only

Every key, range and word a scene document may use: the output, visual tracks of clips (designs, material fills, colours, gradients, titles and shots), the camera, audio (voices, sounds, music) and subtitles. Call this first when making a video, and video_examples for whole scenes to start from. A scene can hold: drawn pictures with groups, flips and a multiply blend (a shadow, a vignette, a night

video_presetsread-only

The engine's frame presets (landscape 1920x1080, square 1080x1080, vertical 1080x1920 and their 720 versions) and frame rates. This service renders up to 1920 by 1080 either way up, 30 frames a second and 60 seconds. Costs no units.

video_examplesread-only

Without a name, lists the example scenes (what each is, what it shows, its length, size and price in units). With a name, returns that scene whole, written inline as video_render wants it: copy the nearest one and change its words, seed and numbers. Each was rendered by this service's own engine and looked at before it was listed. Costs no units.

video_checkread-only

Checks a scene document with the engine's strict reader without rendering it: ok, or one sentence naming the first problem and the key it is at, with every other problem in the scene listed in result.errors (up to fifty), so one call finds them all. A scene with dialogue is spoken while it is read, so a long one takes a few seconds, and a line that overlaps the same character's last, or ends after

video_costread-only

Reads a scene and reports what rendering it takes (frames, size, design renders, shot frames, audio seconds) and what it costs here: units, and whether it is within this service's limits (60 seconds, 1920 by 1080, 30 frames a second, 600 units a job). Renders nothing. A shot costs most, because every frame of it is drawn from geometry: the nine-second two-person chase in video_examples is 130 unit

video_still

Renders one frame of a scene at t seconds as a PNG at the scene's size: the way to look at a moment (just after a transition, mid-reveal, the last frame) before rendering the whole video. Costs 1 unit, plus a shot's price when the scene has shots (3 plus 1 for each 1.6 megapixels). It runs as a queued job: the answer is 202 with a job id at once, and GET /api/agents/jobs/<job> (or the MCP tool job

video_render

Renders a scene to video.webm (VP9 and Opus), video.wav (its sound) and video.vtt (when it has subtitles); with preview (the default) also video.contact.png, twelve moments on one sheet, and video.preview.gif, 480 pixels wide. A scene can hold: drawn pictures with groups, flips and a multiply blend (a shadow, a vignette, a night grade); characters who talk (cast, timed lines with their own reading

raster_schemaread-only

Every key and range a shot document may use: the camera (keys or an orbit), the sun, the air and fog, and the subjects (forms, characters, animals, open country and primitives) placed by position or by time keys. The same keys go in a video shot clip's extra. A zone subject and a terrain subject name a shipped world by id in their world key (see raster_render). Costs no units.

raster_checkread-only

Checks a shot document with the renderer's strict reader: its name, size, subject count and length, or the key that is wrong and why. Forms and materials are named by shipped id or written inline. Costs no units.

raster_render

Renders a shot (a camera through the engine's world: forms from the sculptor, people and animals from the rig, open country, primitives, under the game's own sky, sun, shadow and haze) at t seconds as shot.png. width and height (both or neither) set the size, else the shot's own; at most 1920 by 1080 either way up. Costs 3 units plus 1 for each 1.6 megapixels: 4 at 1280x720, 5 at 1920x1080. A shot

pull_schemaread-only

Every document the pull engine reads, with its keys: a session (its generators, their onsets on one integer-nanosecond clock, states, declared intentions, the follower's report and the sealed schedule), a schedule, a pre-registration, a twin, a performer and a device. Call this first. Costs no units.

pull_preregread-only

Reads a pre-registration (what is measured, the conditions, trials per session, sessions, alpha, power, the number of comparisons and the correction) and returns its hash, to record in each session's prereg.hash before the run starts. Costs no units.

pull_analyse

Analyses the sessions of one condition (one session, a list, or {"sessions": [...]}) together, and each alone, and returns the report: its label (significant; null, with the smallest effect these sessions could have found; unlabelled, with what is missing; or not testable) and the sentence behind it, the mean signed shift against three surrogate families, the placebos, the four cells (deliberate,

pull_twin

Runs twin sessions (scripted performers and the machine follower, each session drawn, sealed, released, closed and opened like a real one) and analyses them under the twin's own pre-registration: how many sessions were labelled significant, that rate with its 95% interval, and the pooled report with its hash. Give a twin document (pull_schema lists its keys: others for a group, a room of beings, t

pull_costread-only

Prices a call without making it: give the arguments of pull_twin (a twin document, or condition, coupling, planted, field, sessions as a number and seed; nothing at all is the default twin), of pull_analyse (a sessions document, with prereg, replication, surrogates and pairs) or of pull_lab (a theory, one-dimensional or with a model, or reference skyrme or hopfion). The engine counts the document

pull_schedule

Draws a schedule of perturbations (tempo up or down, phase advance or delay, and catch trials where nothing changes) placed with a lead-in and random gaps; spec sets its trials, gaps and beat (pull_schema lists the keys). By default the randomness is 32 bytes of this server's operating-system randomness, graded hardware_seeded; seed draws from software instead (graded software, which a research ru

pull_seal

Seals a schedule's text before the run: commits to it (SHA-256 of the text and a nonce) and encrypts it (ChaCha20) under a fresh key. Answers with sealed (the public half, for the session's schedule.sealed) and secret (the key, IV and nonce), to this call alone: this service does not store, log or show again either the text or the secret, so keep the secret, release each cue at its moment, and pub

pull_open

Opens a sealed record (the public half, or {"sealed": ...}) with its secret (key, iv, nonce): the content, and whether the seal is intact. A seal that does not open is a finding, not a refused input: it answers 200 with ok false, intact false and why. Nothing is kept. Costs 1 unit, a broken seal included.

pull_close

Closes a session's files at at_ns, at or after its end_ns: the session back with its closed record hash and its hashes recomputed. Costs 1 unit.

pull_replay

Recomputes a session's hashes against those recorded with it and, for a twin session, runs the twin again from what it records: replays is true when everything matches. A session that does not replay is a finding, not a refused input: it answers 200 with ok false, replays false and which of the hashes did not match. Costs 1 unit, a session that does not replay included.

pull_align

Aligns two stations' clocks from repeated pings, each [sent_ns, remote_ns, received_ns] (sent and received on this station's clock, remote on the other's): the offset and its uncertainty by the fastest round trip, and the stations record a two-station session carries. Costs 1 unit.

pull_lab

Runs the pull engine's field-theory lab on a theory document (its fields, Lagrangian, which quantity is the mass, what fixes the sector and the value expected; pull_schema lists the keys): the equations derived, a static solution found and weighed, a check that the solver finds no lump where there is none, its small oscillations and a collision, in a fixed layout with an honesty box saying what is

pull_practice

Grades a practice of five drills: match (the spread of the taps against the click), hold (the click falls silent and the person keeps the beat), follow (the click moves its tempo once, at a beat nobody is told), lead (the click follows the person) and duet (the click meets the person a quarter of the way). Each drill is rounds of taps against a click, graded on one number in milliseconds against i

pull_call

Runs an ae_pull verb this list does not name yet, by its name, over one document when it reads one: the way to reach what the engine adds before this service lists it. No flags pass through, and the verbs above (schema, analyse, twin, schedule, seal, open, prereg, replay, close, align, lab, cost, practice) are refused here: each has its own call. Answers at once, within 30 seconds. Costs 1 unit.

jobread-only

A job's status and, once it is ok, its files as signed URLs (and small PNGs inline). For a queued job (video_still, video_render, raster_render, and a large pull_analyse, pull_twin or pull_lab) the status is queued, running, ok, refused, failed, cancelled or expired; wait_s (at most 25) holds the answer until the job ends. A queued pull job's result is its verdict, and its whole report is the file

cancel_jobcan modify

Cancel a queued job (video_still, video_render, raster_render, and a large pull_analyse, pull_twin or pull_lab). One still waiting is cancelled at no charge; one running is stopped and charged for the CPU it had used, one unit for each 10 CPU-seconds rounded up, never more than its price. Answers with the job and the units charged. Costs nothing itself.

jobsread-only

This account's newest queued jobs (at most 50), ids and states only, newest first. The job tool reads one in full. Costs nothing.

usageread-only

Units used and left (an account with no pass is on the free plan, counted by the calendar month), when they reset, every limit, and the units left in unit packs (under unit_packs). Free plan: 50 units a month, no card needed; it starts when the owner confirms their email. Queued renders need a pass or the card plan. We limit free plans and first-pass offers to prevent abuse. More units: 500 for $1

owner

The account's owner: the person or business responsible for the agent, by email. Called with no arguments it reads the owner's state (confirmed, unconfirmed, missing or removed, the address hidden in the middle). With owner_email it names the owner, changes it, or sends the confirmation again. The free plan starts when the owner confirms; a pass never waits for it. Costs nothing.

subscriptionread-only

The account's plan: a pass (its window of included units, when access ends, and that it never renews) or a person's card plan (its period and renewal), the owner's state, what is paid, and pass_quote: what the next pass costs this account. An agent buys a 30-day pass with a shared payment token: $1.00 the first time (a one-time offer for a new owner), then $20.00, with 1,500 units each. A pass nev

Alternatives in Design & Media

Compare →
Try “Notion”, “Stripe”, “create invoice”, “browser”