Intuit For Education
Scholarship explainer timed by GPT-4 and assembled in After Effects by script
A machine-timed explainer for Intuit's scholarship-types RFP — GPT-4 acting as animation director, ExtendScript building the After Effects timeline from its JSON, boards trained on Intuit's own illustration style.
GPT-4 acted as animation director — gapless scene timings and camera moves as JSON, and ExtendScript built the After Effects timeline from it
Automated
The timeline built itself
v6 · 2:06 · 9:16 · fourteen boards, timed by a model, assembled by a script
- runtime
- 2:06
- boards
- 14
- scenes
- 14, gapless
- hand-keyframed
- 0 frames
The tool came firstHundreds of scripts were possible, so the first thing built was a script analyzer — and if it was already reading the script, it could draw it too.
- script in
- 360 words
- scenes out
- 14
- cut to
- 2:00.8
- holds
- 7.1–16.4s
- camera moves
- punch in ×4 · out ×4 · pans ×2 · held ×4
One beat, all the way through — The same fifteen seconds at four stages — nothing here is paraphrased.
-
01the script section
Jake — Athletic & Community Scholarship (0:15–0:45). Jake, a stylized baseball player, catches a ball. The scene transitions to show a split screen: one side shows a baseball field, the other a community center icon. A stylized check with “Tuition” appears, partially covered by two smaller checks labeled “Athletic Scholarship” and “Community Scholarship.”
What a human wrote.
-
02what spaCy pulled
JakeAthleticCommunityScholarshipVisualbaseballplayercatchesballscenetransitionssplitscreenbaseballfieldcommunitycentericonstylizedcheckTuitionappears JakeAthletic & Community ScholarshipVisualJakestylized baseball playerballscenesplit screenbaseball fieldcommunity center iconstylized checkTuition45 keywords by part of speech — nouns, verbs, adjectives — and 25 noun chunks kept as phrases. A sample of each is shown.
-
03the prompt it wrote
Create a 2D illustration in the style of Intuit brand videos (simple shapes, clean lines, bright colors, hand-drawn style character). Scene description: Jake, a stylized baseball player, is catching a baseball. Visual elements based on keywords and phrases: Jake, stylized baseball player, baseball, Jake, athletic, baseball, player, catches. Character style should be similar to the example video provided (simple, illustrative, 2D). Color palette should adhere to Intuit visual guidelines.
Composed from the extraction above. Nobody typed this.
-
04what came back
Artboard 03, in the brand line, from a prompt the pipeline wrote itself.
Open the build record Eleven days, from an empty file to a comp that builds itself — including the three app screens the drawing above stands in for.
the analyzer
the app
the style search
the trained line
the boards
the assembly
One beat, all the way throughThe same fifteen seconds at four stages — script, extraction, prompt, board.
The self-assembling editOne explainer, from script to cut, where the timeline is machine-built.
Three students, three scholarship mixes. A script, a voice read, and fourteen one-line board descriptions — that is everything human-authored that enters the pipeline.
under the hood
detect_silence(vo_audio, min_silence_len=500, silence_thresh=-40)
{ "scene": 12, "image": "Artboard 11.png", "start": 82.55, "end": 90.0, "camera_move": "pan_right+punch_in" } under the hood
layer.startTime = scene.start; layer.outPoint = scene.end;
layer.scale.expression = "ease(time, inPoint, outPoint, [100,100], [120,120]);"
the inputs, in full
First, meet Jake, a high-school baseball player who just earned an athletic scholarship to play at a Division II university…
Artboard 03 — Jake looking straight to camera, in a baseball uniform, with a high school baseball game in the background.
the reference set
Intuit's published illustration system — the look wasn't invented, it was matched.
drawn once, reused everywhere
One drawn cast and prop set, generated once and reused on every board.
twelve beats, drawn twice
Twelve beats, drawn twice — rest on any frame to see the round it replaced:
Six of the fourteen locked boards — the full board lands here when the archive drive is back.
the call sheet, drawn
All fourteen scenes, gapless from 0.00 to 120.82s, every cut sitting on a silence the VO itself chose. Read straight out of intelligent_scene_timings.json — the bar is each scene's hold, to scale.
the script that writes the edit — every draft of it
- 03-17boiling_script.jsx124
- 03-17boiling_script_new.jsx137
- 03-17dynamic_sequence_camera_moves.jsx71
- 03-18ae_llm_auto_sequence_auto_dimensions.jsx71
- 03-18ae_llm_auto_sequence_final.jsx54
- 03-18debug_ae_import_script.jsx39
- 03-18final_ae_full_script.jsx97
- 03-18final_ae_json_script.jsx92
- 03-18final_ae_json_script_corrected.jsx98
- 03-18final_ae_json_script_fixed.jsx93
- 03-18final_ae_json_script_robust.jsx98
- 03-18final_updated_ae_automation.jsx97
- 03-18numeric_sequence_adj_reversed.jsx78
- 03-18numeric_sequence_adjustments.jsx78
- 03-18quick_test_sequence.jsx51
- 03-19final_ae_exact_match_script.jsx96
- 03-19final_ae_script_00-13.jsx103
- 03-19final_ae_script_with_pan_and_ordering.jsx104
Eighteen drafts across three days to get one ExtendScript that reads the model's JSON and builds the whole timeline. The last one is the one that ran.
six versions of the same two minutes
The same moment, 1:00 in, across all six exports. v5 is where the cut grew by five seconds. Nothing here was hand-keyframed.
A model timed the cuts. A script built the comp.
The humans wrote, drew the references, and chose.
Project Elements
Have a Project in Mind?
Animation direction, VFX and creative technology. Message me on LinkedIn or get in touch.