Family side project · 3D browser game

A monster game, built from a kid’s imagination.

My kid wanted a game starring his favourite monster—but not a generic one. So we sat down with paper, invented characters, powers, controls, and a Toronto setting, then turned those ideas into concept art and a real playable prototype with AI and code.

The Siren Head player character on a rainy Toronto avenue with the CN Tower ahead
Toronto, reimaginedWebGL · Three.js
Play time
5–10 minutes
Made with
Paper, AI + JavaScript
Built by
Parent + child
Best on
Desktop browser

Why we made it

The brief came from the best kind of client.

He already knew the feeling he wanted: enormous monsters, a dark city, a siren blast, soldiers, and a final showdown beneath the CN Tower.

We didn’t begin at a keyboard. We sketched the world on paper and talked through what each character could do. Siren Head would sweep enemies aside, bite at close range, and unleash a sonic blast. House Head would move like a giant spider. The city needed rain, lightning, and landmarks that made the monsters feel impossibly tall.

The fun was not only finishing a game. It was showing how a rough idea can move through design, visual experimentation, engineering, and play-testing—and that a child’s imagination can be a legitimate product brief.

From paper to playable

Four loops, one small game.

Each step gave us something concrete to react to, change, and improve together.

  1. 01

    Imagine

    Characters, powers, controls, story beats, and the map started as conversations and paper sketches.

  2. 02

    Visualize

    We used generative AI to explore the look of Siren Head, House Head, and the stylized soldiers.

  3. 03

    Build

    AI-assisted coding helped translate the design into JavaScript, Three.js, procedural 3D models, combat, and enemy behaviour.

  4. 04

    Play-test

    We tuned movement, scale, attacks, lighting, weather, and difficulty by playing the prototype and iterating.

Playable prototype

Enter Toronto Night.

Desktop keyboard and mouse recommended. The game loads only when you ask, so the portfolio stays fast.

Siren Head in the playable Toronto night environment
3D action / horror prototype

Siren Head:
Toronto Night

Fight through army patrols, reach the CN Tower, and face House Head.

Having trouble in the embedded player? Open the game in its own tab for the best mouse-lock and fullscreen experience.

Open full-screen game Download for PC

Controls

Simple enough to start. Loud enough to matter.

WASD

Move

Use the keyboard to navigate the city. Hold Shift to run.

Look + strike

Move the mouse to look. Left-click for a sweeping hand attack.

RMB

Bite

A slower, heavier close-range attack for bigger damage.

EF

Siren blast

An area attack that stuns and damages everything around you.

Character concepts

Ideas before polygons.

AI-generated visual explorations helped us agree on silhouette, scale, mood, and the details that mattered before coding the 3D characters.

AI-assisted concept art for the tall Siren Head character
PlayerSiren Head

Tall, skeletal, weathered—and built around a sonic area attack.

AI-assisted concept art for House Head, a house-shaped spider monster
BossHouse Head

A glowing, house-shaped creature carried by slow spider-like legs.

AI-assisted concept art for a stylized masked army soldier
EnemyArmy patrol

Small against the monsters, but dangerous when they coordinate in groups.

“Can we make the monster game I’m imagining?”

The whole project began with that question.

What this project taught me

AI shortened the distance between imagination and a first working version.

It did not replace design or judgment. We still had to decide what was fun, communicate the feel we wanted, break the problem into pieces, test what came back, and keep improving it. That made the build a small lesson in product thinking—and a memorable way to make something together.

  • Translate a playful idea into a scoped prototype
  • Use AI for exploration, not as a substitute for taste
  • Design for scale, feedback, and a clear five-minute loop
  • Ship something real enough for another person to play