A GroundSlate character you can animate
Two cartoon characters, one set and a 24 second short built on one Mac through GroundSlate's MCP, with the creator marking up every render as it landed. The step by step: the front brief written part by part from the style kit, the front drawn and approved, the puppet cut from it, a voice on the avatar, a set that gets the same brief, the shots as HTML pages with cuts and snap moves, a designed title card, a mix leveled from readings, the film, and a 16:9 version reframed shot by shot. Every prompt is here to copy, with the picture each step produced.
2 September 2026Team COEY

Ask an AI agent for a cartoon character and you usually get a diagram. A rectangle for a torso, two ellipses for eyes, a uniform line at the same weight everywhere, and a face that belongs to nobody. It passes every technical check. You would not put it on television.
This is the walkthrough for getting the other thing. Two characters, one set, four shots, two voices, a title card, a mix, and a 24 second short delivered twice, once vertical and once 16:9. Every step went through GroundSlate's MCP from an agent on one Mac, in one afternoon. The show is Earth, Unfortunately. Deb Kowalski is the HOA president, 58, the square. Sprocket is a repossessed robot lawnmower who thinks he is a dog. The short is called Over Code. The lawn is three eighths of an inch over it.

The loop
One thing makes all of this work, and it is not a tool. Every picture goes to you in the app before the next step starts: the agent imports what it drew, opens a review on the picture GroundSlate renders, you mark it up, and the agent answers each note beside the mark, fixes them in one pass, and opens the review again. The agent draws, you direct, and every note becomes a rule the next character inherits. That is the whole method. The rest of this post is what the steps look like when you run them that way.
Before anything: the show is drawn once
The first mistake is drawing a character first. Do that and the second character is drawn to a different idea of the same show, and by the fifth you have five styles and a redraw ahead of you.
So the first artifact is a style kit: one object that owns the palette with a role for every colour, the line rule, the shading, the proportions in heads, and the shared libraries of mouth, eye and brow shapes. One kit per show, and every drawing inherits it. Puppets and style kits is the reference for what lives where. Earth, Unfortunately already had its kit, so this build started from it: a stroked line, a cel shadow on the lower right of every part, four and a third heads for an adult.
One rule from the kit that matters most: the kit's twelve swatches are the show's palette, not the cast's. Every character gets one saturated hue that is theirs, written into the brief. Deb's is mustard. Sprocket's is orange.
Step 1: the front brief, part by part
The order matters more than anything else in this post: write the front brief from the kit, draw one T-pose front SVG, and cut nothing into a puppet until that front is approved.
A brief is not a name and a sentence. It has six sections: the visual idiom copied from the kit in the kit's own numbers, the delivery contract (the file, a named group for every part that will move, the T-pose), the character part by part the way a designer briefs a modeller, the three shapes of the silhouette, the palette row with the one hue that is theirs, and the checks the sheet has to answer. Deb's said, among fifty other things, that the cardigan hem is A-line into wider slacks and that the readers sit on a chain. Sprocket's said he is a box on two wheels with a face plate, a siren, a circular blade on one arm and a string trimmer on the other.
The ask, one character per run, with your own values in the double brackets:
Build me a cartoon character in GroundSlate profile <<PROFILE ID OR NAME>>, for a show called <<SHOW NAME>>. The character is <<NAME, AGE, WHAT THEY DO, AND THE ONE SENTENCE THAT MAKES THEM FUNNY>>. Their silhouette is <<THREE SHAPES: ONE BIG, ONE MEDIUM, ONE SMALL>>, their one colour is <<A SATURATED HUE>>, and they talk like <<HOW THEY SPEAK>>. Write the front brief from the show's style kit first, part by part, and show it to me. Then draw one T-pose front SVG with a named group for every movable part, import it as a kit, and open a review on the store's render of the sheet: the face at three times size, the whole figure, the flat black silhouette at full size and at 64 pixels, and every joint turned 30 degrees. Answer each of my notes beside it and re-render until I approve the front. Do not cut a puppet or start the next character before then.


Step 2: the puppet, cut from the front
A finished character is not a picture. It is a rigged puppet: a skeleton with an SVG drawing on every joint, per view, that an HTML page can pose and a recording can talk through. The puppet is cut from the approved front: the front's groups become parts, each on a joint with a pivot, each with a depth so the arms draw in front of the torso and the far leg behind the near one. The manifest names the skeleton, the parts and their order, the face (Deb's eyes and brows are her own, her mouths come from the kit's chart; Sprocket draws eight of his own mouths on the grille and the rest resolve through the kit's fallback table), and the overrides the puppet carries against the kit. Both puppets throw the kit's cel shadow harder than the kit does, because the kit is set for a full frame and these live on a phone.
puppet_doctor checks the rig, puppet_build writes the file the engine loads, and puppet_sheet renders the turnaround, the expressions, the mouths and the hands. Look at every sheet before anyone else does.
Step 3: the avatar and the voice
The body lives on the avatar with its voice, so a scene asks for the character once and gets both. create_avatar with the name, the identity, the bio and the voice direction in the bible's words; set_avatar_puppet to point it at the kit; attach_voice with a GroundSlate voice. Deb got Sana. Sprocket got Kit.
Then the lines, recorded before anything is animated, because the take decides the timing of everything laid on top of it. synthesize_speech returns one file per line with word timings, every take normalised to the same speech level, and the timings drive the mouths: the shot page hands the words to the puppet's say and the shapes land on the frames the take says they do. Ask for temperature 0.9 and three takes of anything shouted, and pick.
Step 4: the set gets the brief a character gets
A background drawn from a one-line location note comes back as boxes: a rectangle for the garage, an ellipse for every bush, a box with two circles for the van. So the set gets a brief in the same six sections as a character: the visual idiom from the kit for this place at dusk, the delivery contract (the registered name, the world size, the ground line, every mark), the place part by part with one paragraph per object the camera will see, and the checks. Then it is drawn to the brief, organic and drawn rather than assembled from shapes: every edge a curve with a little sag, siding as five wavy lines, shingles as a few long strokes, mop heads and tufts instead of ellipses, and every object drawn from the camera's view of it, so a van parked nose out shows two tread faces and a contact shadow, not hubcaps.
Build the set <<LOCATION NAME>> for <<SHOW NAME>> in GroundSlate profile <<PROFILE ID OR NAME>>, drawn to the style kit <<KIT NAME>>. Before you draw a plane, write it a brief in the same shape as a character brief: the idiom from the kit, the delivery contract, the place part by part with one paragraph per object the camera will see, and the checks. Then draw it organic and drawn, not assembled from shapes: no rectangle, circle or ellipse anywhere the eye can see it, and every object drawn from the camera's view of it. Give me planes at depths the camera can pan through, a ground line, named marks for <<THE SHOTS THE SCENE NEEDS>>, and a near plane. Put the cast on the marks at scene scale in the very first set check, run the camera through the shot list, and open a review on it. Fix every note, answer each beside its mark, and do not render a shot against this set until I approve it.

The cast stands in the set check from the first round, because scale is only visible with a figure in the frame, and the fix for a scale problem is always to the set and never to the cast: scale the whole drawing about its ground line, thin the strokes to match, and a mower character stands knee high against a person.

Step 5: the script, and shots that are pages
Write the scene before you touch the software. Ours is four shots and four lines, played straight by both of them.
DEB: Sprocket. This lawn is three eighths of an inch over code. SPROCKET: On it, Deb! Good boy? Good boy. DEB: Not the hydrangeas. Sprocket. Not the hydrangeas. SPROCKET: Everything is lawn if you believe, Deb!
Every shot is one HTML page that loads the engine, the set and the two rigs, spawns the puppets on the set's marks, keys the poses, the emotes, the blinks and the breathing on a timeline, hands each line's word timings to the speaker, and moves the camera. The page exposes a seek and a duration, so GroundSlate captures it frame by frame in any order. Preview it at the timestamps that matter, then render_html the page to a clip.
Put <<AVATAR ID OR NAME>> and <<AVATAR ID OR NAME>> in <<SET NAME>> in GroundSlate profile <<PROFILE ID OR NAME>> and shoot the scene below as a <<9:16 or 16:9>> short. Record every line in each character's own voice first and time the mouths off those takes. Animate every shot as an HTML page of the two puppets on the set: open wide, cut at least every ten seconds, and inside every shot give me a two shot and a face, with the one who is not talking still acting. When a line is about an action, the action is in the frame. Cut the film from one document, level every cue from a reading with the bed ducked under the voices, and open a review on the film. Answer every note beside its mark and re-render until I approve it.
The camera rules this short keeps, and they are the ones to ask for first: open wider than you think, then cut to faces. Cut, and vary the framing inside every shot; in a page a cut is a camera move with no duration and a snap is a fifth of a second on an exponential ease, which reads as a whip. Between shots, hard cuts. When the line is about an action, the action is in the frame: the blade is up in the hydrangeas before Deb says "not the hydrangeas". Tight means tight: for his last line his screen fills the frame with the blade at the corner. And debris is a plane: sixteen leaves burst off the blade on their own layer over the actors, each a keyed shape arcing up and tumbling down, while the camera punches onto the blade.


Step 6: the title card
A title is a designed card, not a line of type. Ours is a hand-drawn ink banner with a yellow keyline that springs in tilted, the show name small in Chalkboard SE above, and OVER and CODE stacked in Phosphate, yellow with an ink stroke and a hard magenta shadow pulled from Deb's cardigan and the front door, each letter popping in with a bounce. It sits on a screen-locked plane under the actors, so when the camera snaps in to the two shot her head passes in front of it. The two faces are registered in the profile's font library with register_font before the page names them, so the render embeds the real face, and check_fonts confirms every face resolves before a render is spent.

Step 7: sound, from readings
Every cue in the mix has a level that was read, not guessed. The dialogue takes are normalised when they are made. The bed is measured and placed four decibels under, then ducked six to one under the voice bus. The effects are generated on the Mac with generate_sound_effect, whose prompt wants a source, a material, a motion and a perspective, and each one is measured before it is placed. The hedge trimmer is a small two-stroke engine that sits under her line and drops further under his. The sting sits below the dialogue and lands under the tail of her last word. The yell is a line, recorded in her voice.
The check that decides it is a reading across the whole film, not the first ten seconds. audio_energy at half-second intervals, and the numbers to read off it are the level under the lines, the level in the gaps with only the bed, and the loudest half second, which had better be a line and not an effect.
Step 8: the cut
The film is one document: four scenes with their frame counts, six audio tracks with every cue placed by its film-absolute frame, the ducking, a limiter and a fade to black. cut_doctor checks it for free before a render, render_cut renders it, and the result carries a receipt: the frames predicted from the document and the frames measured off the file. Every shot renders on its own and the cut caches captures by content, so a note on one shot re-renders that shot and the cut, and nothing else.
Step 9: the same scene, 16:9
A 16:9 version of a vertical short is not a zoom out. Scaling every zoom by the ratio of the frame heights shows the same world with the sides let in and looks like a phone video played on a television. The real version composes every setup again for the wide frame: the wide with the house across the frame and both of them centre low, a two shot that uses the width with both figures whole, faces that fill the height, the title card upper right and clear of her head. Same scene, same actions, same timings, same audio: the four pages with their camera blocks rewritten, rendered at 1920 by 1080, cut from the same document with the size changed.

Where to start
If you want the whole pipeline in order, read The animated series in five steps. If you would rather hand the whole thing to your agent and answer its questions, The animated series is the shortcut. The front that can be rigged is the character step on its own, The sets the camera moves through is the world step, and Two characters, one conversation is the scene.
If you only want to find out whether your idea has a character in it, do the smallest version of this: paste the character ask, answer the three shapes and the one colour properly, and look at the face at three times size on the store's render. That is one afternoon, and by the end of it you know whether you have somebody or a diagram.
Deb would like it on the record that the hydrangeas were not the lawn.