finalthief
Back to blog

Skyport Dash: Two Heroes, Three Skies, and Capes That Finally Behave

Nova, Luna, three sky routes, and the small fixes behind a private browser-game prototype: fairer stars, lighter scenery, and capes on the right bones.

Written by Iris Hart on behalf of finalthief • November 3, 2026 • 15 min read
Skyport Dash hero-selection screen with Nova and Luna beside a Starlight gameplay capture labeled test mode.

A cape tied to the wrong bones will march along with its hero’s legs. That is one of the wonderfully specific problems in Bert’s Skyport Dash build journal.

The project has grown from a Nova-only rail runner into three sky routes and two selectable heroes. Nova brings her jetpack. Luna brings Starlight, rainbow sparkles, and her own voice. Underneath them is the less glamorous work: fairer star goals, cheaper scenery, touch-input fixes, and a cape that finally follows the body instead of the stride.

Source and scope: This is Bert’s supplied development journal, credited in the document to Umberto Alicea and dated November 1, 2026. Its entries cover October 16–18, 2026; this article’s publication date is November 3. I’ve adapted it for the blog and clarified a few captions. The implementation and performance details are reported by the supplied journal, not independently tested by me.

This is still a private, home-network-only build—not a public game launch. The source reports browser play on PC, phones, and iPads over home Wi-Fi, but says a real-phone frame rate has not been measured. The screenshots and model comparisons below are supplied stills, not a new gameplay test or video.

Where things stand

Skyport Dash has three levels and two heroes, Nova and Luna, and runs in the browser on a PC and on phones and iPads over home Wi-Fi. It took 11 commits, Oct 16 to Oct 18, 2026.

  • Levels: Skyport Run (1,300 m), Sunset Skyway (1,450 m) and Starlight Express (1,600 m), unlocked in order
  • Heroes: Nova flies with a jetpack, Luna with her Starlight; you pick on the title screen Still open: More heroes as their turnarounds arrive
  • Art: AI-generated 3D heroes of about 40,000 triangles each; a world built by Blender scripts Still open: HD hero models from Tripo once its exports fit the budget
  • Audio: 55 voice lines, 24 sound effects and 5 music tracks, all from ElevenLabs
  • Where it runs: Browser on PC; phones and iPads over home Wi-Fi. Still open: No public hosting; real-phone frame rate unmeasured.
  • Code: A private repository, about 5,300 lines of TypeScript. No source repository is being made public here.

Oct 18, afternoon — Luna joins, and the game becomes Skyport Dash

Luna is the second playable hero, and the game is now just Skyport Dash, since more Family Task Hero heroes are coming.

Luna turnaround artwork beside a 3D cape view and a separate Nova model view.
Luna’s front-and-back turnaround and the supplied model comparison. These are static character views, not footage of a playtest.

She went through the same pipeline as Nova (drawn at the end of this page). Higgsfield turned the front and back of her turnaround into a textured 3D model with a skeleton in about 8 minutes, for 35 credits. A Blender script then cut her teal cape free onto its own spring-driven bones.

Skyport Dash title screen with Nova and Luna selectors, beside a gameplay view labeled test mode.
The renamed title screen and hero picker, beside Luna’s Starlight view. The gameplay capture visibly carries the source’s test-mode badge.

What Luna brings:

  • Her own power. Nova flies with a jetpack; Luna flies on her Starlight, her power in the RPG Books app. It shows as a starburst glow and a trail of rainbow sparkles, with its own sounds and "star power" cells instead of jet fuel.
  • Her own voice. Gigi, her voice in the RPG Books cast, recorded 12 versions of Nova's lines, and Bolt got 6 lines that say her name or her power. Speech-to-text checked all 18. The game never plays Nova's voice for another hero.
  • A hero picker. Two buttons under the logo. The game remembers your pick, and a hero's model loads the first time it's chosen.
  • The rename. The title, logo, loading screen and page title now say Skyport Dash.

Two catches:

  • Her cape is the same teal as her boots and cuffs. The cape finder now looks only behind the body and keeps the largest teal piece: 3,526 points between 0.27 m and 1.02 m up.
  • The first Starlight glow washed out the whole screen. It's now smaller and softer, and the sparkles keep most of her speed, so they trail just behind her instead of flying into the camera.

Known limits: her Starlight still charges from the canister-shaped fuel pickups; only their name changes for her.

In the local build, picking Luna is remembered for the next visit. Public readers cannot launch the game from this post.

Oct 18, late morning — Stars that mean something

Each star is now a goal you can see, so a Level 2 run with every gem and no bumps earns three stars instead of two.

Stars used to come from coins alone: half the coins for two stars, 80% for three. Some coins sit on routes you can't take in the same run, so a 228-of-297-coin run (77%) stopped at two stars, even with all 5 gems and all 3 hearts. The three goals now:

  • Finish the run.
  • Collect about 60% of the level's coins, rounded to 10 (180 on Level 2).
  • Get every gem without losing a heart.
Two Harbor Reached result screens: three stars at 228 coins and two earned goals at 150 coins.
The new goal-based stars: all three goals met on the left; the coin goal missed on the right. The left capture predates the reported red-heart display fix.

The stars are the glossy star from the RPG Books app, popped into dark star-shaped slots with a starlight burst behind each one. The level cards use the same art.

One more fix: the heart on the results screen showed black, because its colour rule never reached it. It's red again.

Known limits: records saved before the change keep their old star count until you replay the level.

Oct 18, morning — More detail, same cost

The sky islands and bridge gained detail while the reported Level 1 title-screen draw workload fell to 187 batches and 577,000 triangles, from 210 and 580,000. Those counters are not a measured phone frame rate.

Before-and-after floating-island models, from a plain cone to layered rock and vegetation.
The floating-island asset before and after the scripted detail pass; this is a static asset comparison.

The islands. The old ones were a plain cone under a grass disc, and the cone was upside down, so from the bridge they read as mountains. A new Blender script builds real floating islands: layered rock with moss, hanging roots, stalactites, glowing crystals, a grass cap that droops over the edge, blossom and pine trees, a cottage tower with lit windows, and a waterfall that spills into mist. After the original islands read as mountains, a fifth type is a floating snow-capped peak.

Day and night before-and-after Skyport bridge views showing revised railings and scenery.
The bridge detail pass in day and night scenes. Draw-workload figures below come from the supplied build log, not a phone frame-rate measurement.

The bridge. Separate deck boards, stone curb blocks, capped railing posts, hanging flower boxes, a lamp post with a flower basket, a plank planter with tulips, ivy, a stone pillar into the clouds, gravel, and rails with a proper head and foot.

How it stays cheap:

  • Colour is painted onto the model's corners instead of image textures, with soft shadows in the creases baked in, all on one shared material. An island is now 2 to 5 draw batches instead of about 10.
  • Every island and bridge piece has a light twin with the same layout. The detailed one is used up close (within 230 m for islands, 160 m for the bridge), the twin beyond.
  • Before: 210 draw batches; 580,000 triangles.
  • New islands: 202 draw batches; 584,000 triangles.
  • New islands and bridge: 187 draw batches; 577,000 triangles.

A bug found on the way: the right side of the bridge had never been drawn. The code that copies bridge pieces dropped the mirror flip, so the right side landed exactly on top of the left. It's now the left side turned around, which is why both sides have railings.

Oct 17, late night — Two new levels

Two levels joined Skyport Run, each with its own sky, landmark, music and one new thing to master: Sunset Skyway's bounce pads and Starlight Express's Star Shield.

Six gameplay captures showing Sunset Skyway and Starlight Express, including their landmarks.
Sunset Skyway and Starlight Express in the supplied captures: different lighting, route challenges, and finish landmarks.
  • 1 Skyport Run: 1,300 m; 11 to 16.5 m/s. The basics, taught by Bolt. Finish: Skyport Gate.
  • 2 Sunset Skyway: 1,450 m; 12 to 17.5 m/s. Bounce pads up onto roofs and over crate walls. Finish: Cloud Harbor lighthouse.
  • 3 Starlight Express: 1,600 m; 13 to 19 m/s. The Star Shield, which takes one bump for you. Finish: Star Observatory.

What came with them:

  • A level picker on the title screen. Finishing a level unlocks the next, and the results screen offers Next Level.
  • A look for each level that recolours the sky, fog, sun, lamps and clouds: golden hour for Level 2, stars and an aurora for Level 3.
  • 14 voice lines, 3 sound effects and 2 music tracks.

One catch: a crate wall 12 m past a bounce pad would have caught Nova mid-air, so walls sit 6 m past their pads, under the jump.

Playing on a phone is a home-network setup: the local development server makes the game available to devices on the same Wi-Fi. There is no public play link in this post.

Oct 17, night — Nova's cape learns to fly

The AI Nova's cape and jetpack now move with the body instead of marching along with the legs.

The 3D generator's automatic rigging tied each part of the surface to its nearest bones. The cape ended up about 93% driven by the thigh bones and the jetpack about 42%, so both stepped with every stride.

Rear views labeled AI-generated Meshy and Blender-built current, showing Nova cape and jetpack.
The source’s historical model comparison. Its “current” label belongs to that build checkpoint; a still does not demonstrate the cape animation.

The fix is a Blender script, run once on each download:

  • Join the model back into one connected surface; the importer had split it at every texture seam.
  • Find the cape by its yellow colour behind the body and cut it free as its own piece. The suit was modelled underneath it, so the body stays whole.
  • Hang the cape on a new chain of four bones from the spine, and pin the jetpack to the spine.

In the game the four cape bones swing on springs. The cape streams back when running, flicks up when falling, droops when rising, sways on lane changes and flutters at speed.

Two catches:

  • The first pass found only 60 cape points, because the seams had split the cape into scraps. Joining the surface first fixed it.
  • Moving only the cape stretched the faces that join it to the suit into a web, so the cut takes that strip along with the cape.

Oct 16, evening — Giving Nova a real face

Nova got two makeovers in one evening: a detailed rebuild in Blender, then an AI-generated 3D model that became the default.

The Blender polish. Longer legs; a softer suit with harness straps, a zipper and pocket flaps; painted eyes with lashes; bigger goggles; a puffy scarf; a wider cape; and a jetpack with valves and a gauge. In the game it gained fabric sheen, glossy teal parts, blinking and a soft shadow underfoot.

The AI model. Higgsfield's Meshy tool turned the front and back of the turnaround into a textured 3D model with a skeleton. Side by side, it looked much more like the drawing:

Side-by-side Nova models labeled Blender-built current and AI-generated Meshy.
Nova’s Blender-built and Meshy-generated models, shown side by side in the source journal.

The AI Nova moves with the animation code the Blender one already had: the Blender Nova runs invisibly and its pose is copied onto the AI skeleton every frame. The textures were shrunk from 15.8 MB to 4 MB. The Blender Nova still plays with ?nova=blender, and ?view=compare shows the two side by side.

Oct 16, late afternoon — A one-level prototype

The first playable version: Nova runs the Skyport rails to the Skyport Gate in a 1,300 m level, in the browser on a PC, an iPad or a phone.

Early Nova Spark Skyport Dash title screen beside rail-running and Skyport Gate captures.
The original one-level prototype, before the later Skyport Dash rename and Luna hero picker.

What it had:

  • Switch tracks, jump, roll, ride train roofs, collect coins and gems, and fill a jetpack from four fuel cells. It plays with swipes, an on-screen stick and buttons, or a keyboard.
  • Kid-friendly rules: 3 hearts, and a crash pops Nova up onto the obstacle instead of ending the run.
  • Bolt the helper bot calls out each new move the first time it appears.
  • Nova, the props and the world all come from Blender scripts that run without opening Blender. The animation is written in code.
  • 23 voice lines, 19 sound effects and 3 music tracks from ElevenLabs. Nova's voice is the one designed for the RPG Books app; Bolt is "Peanut" with a light robot filter.
  • Repeated pieces (track, coins, trains) are drawn in batches, so a frame stays near 600,000 triangles.

Two catches:

  • It seemed to play by itself. The test autopilot, which steers only near obstacles, had been left on in a browser tab. It now shows a "test mode" badge and switches off at the first swipe, key or button press.
  • A swipe that ended over a button could change lanes later. Swipes now reset when the finger lifts anywhere on screen.

How a hero gets made

Nine-step diagram with separate model and voice lanes, joining at game integration and hero selection.
The supplied two-lane hero-production diagram. A text version follows so the small labels are readable on a phone.

The two lanes don't depend on each other, so a hero's voice lines can be recorded while the model generates. The input is the turnaround: a front and a back view of the hero.

The diagram, in text

The model lane has four steps: turnaround (front and back views), 3D model (Meshy multi-image generation), cape re-rig (Blender cuts the cape onto four spring bones), and shrink (1K WebP textures).

The voice lane has three: choose the hero’s cast voice from the RPG Books app, generate hero and Bolt lines with ElevenLabs, then check each take with speech-to-text. Both lanes join at wire in—the hero definition, portrait, power appearance, and sounds—before playable hero selection on the title screen.

The diagram records roughly eight minutes and 35 credits for its model-generation example. Its texture example says about 15 MB down to 2.5 MB; the earlier Nova entry reports 15.8 MB down to 4 MB. Those are different figures in the supplied material, not a single benchmark I have reconciled or a current provider quote. No new generation was commissioned for this post.

A shared animation layer copies the unseen Blender Nova’s pose onto each hero’s skeleton every frame. That is the journal’s explanation of how a new hero can reuse the existing movement instead of needing a separate animation set.

Still on the local tracks

The small fixes are what make this journal worth keeping: stars that reward a clean run, scenery that uses fewer draw batches, and a test autopilot that stops when a human touches the controls.

There is more to prove before calling this a public release. Phone performance is unmeasured, older saved records retain their previous stars until replayed, and Luna’s Starlight still uses canister-shaped pickups. More heroes and higher-detail models remain future work.

For the wider family-app thread, see Family Task Hero + Reader and Brightwood Tales. Skyport Dash is its own game-in-development, not a new public download for either of those apps.

Development journal supplied by Umberto Alicea. Editorial adaptation by Iris Hart on behalf of Finalthief.

skyport-dash family-task-hero devlog ai-collaboration