Introduction
Don't start by building.
The temptation with any ambitious website is the same - open Figma, pick a style, start building. Skip that instinct for a second.
That is usually the wrong place to start. The more useful question is: what experience is worth building in the first place?
This project began with that question. The technology came later. The process moved from personal research and concept development into references, visual experiments, AI-generated imagery, video, relighting, design systems, AI-assisted development, testing and launch.
The interesting part is not the final website. It is how the idea was broken down into smaller problems that could actually be solved.
Concept first. Technology second.
Chapter 01
Find the idea.
A portfolio becomes more memorable when its experience comes from something genuinely personal instead of starting from a familiar template.
Before opening Figma, make a list of things that are genuinely connected to you. Interests. Habits. Places. Objects. Skills. Things you repeatedly return to. Things you could talk about without preparing a presentation.
A keyword cloud can be useful at this stage. The purpose is not to create a perfect list. It is to surface possibilities.
Don't make the site unique with decoration. Start with something that is already unique to you.
Image
Original keyword sketch - messy, thick with crossings-out. What survived the filter.
Deep dive Explore the process
In this project, the initial keyword exploration included design, motorcycles, adventure riding, collaboration, design thinking, prototyping, websites, mobile applications, exploration, love of design, love of exploring.
The important step was filtering. Generic portfolio words were removed. The ideas that had a real connection to the person remained. Motorcycles, riding and exploration became a strong direction.
Why filter?
A keyword cloud is only useful if it leads somewhere. Don't try to include every interest in the final experience. Look for the few ideas that can support:
- A visual language
- A story
- An interaction
- A behaviour
- A reason for the user to continue
The original keyword cloud is no longer available. Reconstructing an exact list from memory would misrepresent what actually happened. What matters is the filter, not the words.
Chapter 02
Give the idea a story.
An unusual visual idea becomes stronger when there is a reason behind it.
A motorcycle could simply be a visual theme. It becomes more meaningful when it represents movement, exploration and a way of seeing the world.
The useful question is: what does this idea allow the user to experience?
Don't stop at "this looks cool." Ask what the concept lets the user do or feel.
Deep dive First explorations
In this project, the motorcycle became a vehicle for moving through different places and experiences.
The original idea was not immediately a motorcycle POV. The first concept was closer to a game - navigate through different 3D worlds, move through different directions, make the website feel like an interactive world. That direction was explored before the final POV idea emerged.
Chapter 03
Explore before committing.
The first visual direction is rarely the final one.
The early exploration moved through game-like 3D environments, vector illustration, different illustration styles, different visual treatments and realistic imagery.
Illustration was deliberately questioned because it is already widely used. The experience was meant to communicate real-world scenarios, not just represent them with a decorative style. That led to a more important question: if the user is experiencing things that have actually been experienced in real life, what would happen if the user saw the world from the rider's point of view?
Exploration is not wasted work. It helps reveal what the final direction should not be.
Chapter 04
Make the user see the experience.
The POV was born from a simple question: when I'm riding the bike, what am I seeing?
That changed the role of the visitor. Instead of watching a designer's story from the outside, the visitor could see the world from the rider's position.
This is where realism became useful. The goal was not photorealism as a look. The goal was to make the experience feel like a real-world point of view. The rider's face did not need to be shown. The viewer could experience the ride through the rider's eyes.
When the story is about experience, consider showing the experience instead of explaining it.
Chapter 05
Build a reference system.
AI becomes much more useful when it has a consistent visual source of truth.
Instead of repeatedly describing a person, vehicle and helmet from scratch, build references first. Here the reference set was rider, motorcycle, helmet - personally photographed and turned into character sheets.
The important idea is to separate what must stay fixed from what can change.
Fixed
- Rider
- Motorcycle
- Helmet
- POV
- Camera angle
- Established framing
Variable
- Location
- Environment
- Weather
- Lighting
- Atmosphere
- Landscape
When AI needs consistency, give it a visual source of truth before asking it to generate variations.
Deep dive Why three sheets?
Each element has to remain consistent across multiple generations. The reference sheets provide shape, proportion, clothing, materials, details, position and visual identity.
A character sheet is what animation studios use to keep a character looking the same across a whole film. Feeding one to an image model means the model can generate the character in new situations without losing what makes it that character.
Chapter 06
Find the first good image.
The goal of the first image experiment was not to create the final scene. It was to find the right POV.
Different AI tools were used to explore different interpretations of the rider's perspective. One generated image finally matched the visual direction that was already forming in the mind. That became the base.
The important decision was knowing when to stop exploring completely different directions. Once the visual language felt right, further exploration could happen inside that language instead of restarting from zero.
Reference sheets → POV experiments → Compare outputs → Choose the strongest direction → Use it as the base
Exploration should eventually converge. Once the right visual language appears, build a system around it.
Chapter 07
Turn one image into a system.
Generating one good image is very different from generating many consistent images.
The next challenge was creating different places without losing the established rider, motorcycle, helmet and POV. A dedicated Image Prompt Engine was created in Claude. Its job was to translate the visual reference into words and keep the important characteristics consistent.
The engine understood rider, motorcycle, helmet, POV, camera angle, framing and visual characteristics. It also accepted new location imagery as reference, then generated structured prompts for new scenes.
The useful AI workflow is not "generate again." It is "build a repeatable instruction system."
Deep dive The workflow
Reference images → Image Prompt Engine → Structured prompt → ChatGPT → Generated image → Review → Iterate
Tools
Prompt structure
Image generation
Chapter 08
The image prompt.
Detailed image prompts work best when they describe the parts of the image that must remain controlled.
A useful prompt can be structured around reference inputs, camera, foreground, environment, lighting, composition, palette, style and negative constraints. The prompt below is a real example from the project.
Deep dive Explore the process
Notice how much of the prompt is dedicated to what should stay constant across every generation - the fuel tank, the handlebars, the watch on the left wrist, the exact framing. Only the environment section describes the specific scene.
Real prompt View the actual prompt
Real prompt · GoPro mountain valley
The actual prompt used with the three reference images loaded (rider sheet, motorcycle sheet, mountain valley reference). No edits.
Using the three uploaded references - motorcycle sheet, rider sheet, and the mountain valley reference (for lighting, palette, and mood) - generate one photorealistic wide-angle photograph (16:9 landscape, high resolution) taken from a GoPro-style action camera mounted on top of the rider's helmet, pointing forward while riding. Foreground - identical framing (keep constant): Upper half of the chrome-and-cream fuel tank with gold pinstriping in lower-center. Full chrome handlebar spanning the lower third. Both bare hands gripping the handlebars, deep forest green rolled-up sleeves visible on both wrists, black Casio G-Shock on left wrist. Top of the chrome headlight nacelle and round analog speedometer visible above the tank. Round chrome rear-view mirrors on either side. Slight barrel distortion (16mm equivalent). Chrome brilliantly catching warm afternoon light. Environment - open highland mountain valley matching the reference: A narrow winding single-lane asphalt road with white centre line, snaking through a wide sweeping valley between two big rolling grassy mountain ridges. The road curves gently ahead, bending gracefully into the distance. Golden-yellow autumn grasslands blanketing the sloping hills on both sides, with patches of green and dry brown, occasional exposed rocky outcrops, sparse low shrubs. Distant peaks rising on both sides of the valley, layered ridges receding into hazy blue-grey depth. The shadow - the hero detail: Strong dramatic backlighting from the low afternoon sun positioned behind and slightly to the right of the rider (out of frame), casting a crisp sharp shadow of the rider and motorcycle projected forward onto the road ahead. The shadow is clearly readable - you can see the silhouette of the rider's helmeted head, shoulders, arms on the handlebars, and the full outline of the bike with round front wheel and handlebar shape - stretched slightly by the low sun angle and falling across the tarmac just ahead of the front wheel and to the right side of the lane. The shadow adds cinematic depth and rhythm to the composition. Sky: Bright vivid saturated blue sky exactly matching the reference - clean deep cobalt blue with dramatic layered white cumulus clouds catching warm golden edge-light, some puffy clouds building up over the peaks, subtle golden hour undertones. High contrast, alive, cinematic. Lighting: Warm strong late-afternoon light coming from behind-right - golden rim light glowing on the tops of the handlebars, mirrors, headlight nacelle, fuel tank, and the rider's hands and forearms. Deep contrasty shadows on the shaded side of the bike. Long soft grass on the hills catching warm golden highlights. Rich luminous atmosphere. Warm honey light on the road surface where it isn't shadowed. Mirrors: reflect the sunlit valley behind, blue sky and warm golden grass hills, hints of glare from the low sun. Palette: deep saturated cobalt blue sky, brilliant white cloud highlights, warm golden-yellow grassland, dark brown-grey road, deep charcoal shadow of the rider on the road, warm cream on the tank, brilliant chrome reflections, warm skin tones on hands. Style: photorealistic real GoPro action-camera photograph, cinematic depth-of-field with sharp handlebars and sharp shadow, gentle motion blur on the road edges suggesting forward speed, natural film grain, vivid alive afternoon mountain riding mood, high dynamic range between bright sun-hit surfaces and deep crisp shadows. No text of any kind anywhere in the image - no brand names, no logos on the tank or handlebars, no video play buttons, no timestamps. Ignore any text or UI in the reference video screenshot.
Chapter 09
Move from image to video.
Not every generated image needs to become a video.
Video generation takes more time and costs more, so the possible scenes were filtered down to five main scenarios before production moved forward.
The lesson is simple. Explore broadly with lower-cost assets first. Spend the expensive production effort only on the scenes that matter most to the experience.
Image exploration → Review possible scenes → Select the key five → Move only those into video production
Filter before you animate.
Chapter 10
Define motion before generating video.
A still image can tolerate ambiguity. A video cannot.
Before generating video, define exactly what should move, what should remain stable and how the movement should behave at the end.
Important constraints in this project:
- Motorcycle never stops
- Motorcycle never slows down
- Constant cruising speed
- Smooth left/right sway
- Continuous forward motion
- Loopable ending
- First and last composition match
- Foreground motion continues through the final second
- Distant elements remain comparatively stable
- Environmental motion stays consistent
The video prompt went through multiple iterations before reaching the final version.
For AI video, describe motion as carefully as you describe the image.
Chapter 11
The final video prompt.
The final prompt that worked. Not the failed ones.
Tools Claude for prompt development. Magnific for generation workflow. Seedance 2.0 for video generation.
Deep dive Explore the process
Video models are literal. If the prompt hints at slowing down at all, the model will slow down. So the final prompt is a series of very direct instructions, sometimes repeated in different wording. The caps-locked repeat section at the bottom is not decoration - it is what makes the loop hold.
Real prompt View the final video prompt
Real prompt · Coconut palm forest loop
Preserved verbatim, including the caps-locked repeat rules at the end. The model needs them.
CRITICAL - READ CAREFULLY: The motorcycle MUST NEVER STOP. Not at the beginning, not in the middle, not at the end. The bike is riding continuously the entire time and is STILL RIDING at full cruising speed at the very last frame - as if the video simply cuts away while the bike keeps going. The last frame is NOT a destination. The last frame is NOT an arrival. The bike does NOT come to rest. The bike does NOT slow down before the last frame. The bike does NOT stop. The last frame just happens to be composed identically to the first frame because it is a seamless loop - but the bike is moving at full cruising speed in BOTH the first frame and the last frame. Seamless looping handlebar POV of a motorcycle riding down a narrow dirt trail through a misty tropical coconut palm forest at early morning, sunlight breaking through the canopy in soft god rays, 8 seconds, photorealistic, cinematic, one continuous take, constant cruising speed the entire time. Motion: Bike cruises forward at a steady pace from frame 1 to the final frame without any change in speed. The dirt trail and lush tropical undergrowth flow past with consistent motion blur - trail streaming by at the exact same speed the whole time, INCLUDING in the final second. The bike moves LEFT AND RIGHT very smoothly and subtly - soft lean to the left, then straighten, soft lean to the right, then straighten, then returns to the exact starting composition by the final frame. The handlebars tilt gently with each lean, the fuel tank framing shifts naturally with the bike's motion. Buttery smooth cinematic sway, no jerks, no snaps. Tall coconut palm trees line both sides of the trail - trees closer to the bike blur past with soft motion blur as the bike moves forward, while the distant misty tree line and canopy stay steady. Lush green banana leaves and tropical undergrowth on both sides sway gently in the humid morning air. Soft warm sunlight breaks through the canopy from the upper left as visible god rays cutting through the mist, illuminating drifting fog and dust particles in the air. The god rays flicker gently as the bike moves past the palm trunks, but their overall position stays consistent throughout the loop. Rider's hands steady on the chrome handlebars with tiny natural adjustments as the bike leans left and right. Cinematic feel: Buttery smooth camera, gentle bike lean into the left-right sway, subtle handlebar tilt, humid tropical atmosphere, drifting mist, warm morning god rays through the canopy. Soft diffused tropical morning light consistent throughout. Film grain, shallow depth of field on the handlebars, sharp focus on the trail and palms ahead. REPEAT - MOST IMPORTANT RULES: - BIKE IS MOVING AT FULL SPEED AT FRAME 1. - BIKE IS STILL MOVING AT FULL SPEED AT THE LAST FRAME. - BIKE NEVER STOPS. BIKE NEVER SLOWS DOWN. BIKE NEVER DECELERATES. - BIKE SWAYS SMOOTHLY LEFT AND RIGHT THROUGHOUT - SOFT LEAN LEFT, STRAIGHTEN, SOFT LEAN RIGHT, STRAIGHTEN, RETURN TO START. - ONLY THE TRAIL AND NEARBY PALMS/UNDERGROWTH MOVE PAST - DISTANT MISTY CANOPY AND GOD RAYS STAY CONSISTENT IN THE FRAME. - MOTION BLUR ON THE TRAIL AND FOREGROUND STAYS IDENTICAL INTENSITY FROM START TO FINISH - INCLUDING IN THE FINAL SECOND. - FIRST FRAME = LAST FRAME (framing only). SEAMLESS LOOP. - LAST FRAME IS JUST ANOTHER MID-RIDE MOMENT, NOT AN ARRIVAL.
Chapter 12
Build a day/night system.
Once the design supported light and dark themes, the visual system suggested a natural extension. Light = day. Dark = night.
Instead of creating a completely different night scene, preserve the same scene and change only the treatment. This makes the day/night switch feel like one continuous composition rather than two unrelated pieces of content.
The goal was to preserve composition, rider, motorcycle, camera, motion, scene structure and sequence. Only the lighting, colour and weather treatment should change.
When two visual modes need to feel connected, preserve structure and change treatment.
Chapter 13
Build a relighting engine.
Relighting needed a different kind of prompt.
The prompt should not describe a new composition. It should tell the model what must remain untouched, what is allowed to change, how the new lighting should behave and how the weather should be introduced.
A dedicated Relighting Engine was created in Claude. Its responsibility: generate prompts that focus on lighting, colour and weather while explicitly protecting the original structure.
Day video → Relighting Engine → Relighting prompt → Magnific → Seedance 2.0 → Night video → After Effects → Final lighting adjustment
After Effects was used to adjust brightness, levels and overall lighting. The purpose was to make the final night treatment darker and more realistic.
When transforming an existing asset, explicitly define what is allowed to change and what must stay fixed.
Chapter 14
The final relighting prompt.
Notice how much of this prompt is "don't touch." That is the whole point of a relighting engine.
Deep dive Explore the process
The prompt below is a real example. It defines the two allowed changes upfront (relight + monsoon rain), specifies exactly what stays identical, then details the desired lighting, weather and atmosphere.
Real prompt View the final relighting prompt
Real prompt · Deep-night monsoon relight
Preserved verbatim.
DO NOT CHANGE ANYTHING IN THIS VIDEO EXCEPT (1) RELIGHT IT TO DEEP NIGHT WITH HALOGEN HEADLIGHT ON, AND (2) ADD HEAVY MONSOON RAIN WITH DISTANT THUNDER. Every structural element of the existing video stays 100% IDENTICAL - do not touch the handlebar framing, hand positions, camera motion, bike sway, palm tree positions, dirt trail path, or any composition. Only the time of day, lighting, and weather change. Night version of a handlebar POV motorcycle ride down a narrow dirt trail through a misty tropical coconut palm forest during a heavy monsoon rainstorm at midnight, photorealistic, cinematic midnight monsoon, seamless loop, constant cruising speed the entire time. Lighting changes ONLY: - The entire scene becomes very dark, deep midnight - heavy black shadows, minimal ambient light, almost pitch-black overall mood. - Sky through the canopy becomes very dark navy-black, faintly lit by distant lightning flashes now and then. - Tall coconut palm trees on both sides become deep dark silhouettes with faint moonlight rims on the wet leaves. - Lush undergrowth and banana leaves become dark and cool-toned, wet and glistening, only visible where the headlight touches them. - The dirt trail becomes dark and wet, muddy with puddles reflecting the headlight glow, illuminated only where the headlight cone falls. - The motorcycle's HALOGEN HEADLIGHT is ON - a natural warm yellow-white beam (classic old motorcycle halogen light, slightly amber, warm color temperature around 3000K) projecting forward from the bike, spilling out in a soft cone shape. The beam illuminates the muddy trail ahead in a warm glow, catches the nearest palm trunks and dripping leaves in warm amber, and fades quickly into darkness at the edges. - Chrome handlebars, mirrors, fuel tank, and speedometer catch soft warm reflections from the headlight glow and the dashboard's own faint warm light, all wet with rain. - The rider's hands and green long-sleeve are dimly lit, wet from rain, with subtle warm bounce from the dashboard. - DISTANT LIGHTNING flashes occasionally somewhere off-frame, briefly illuminating the whole canopy in a soft cool blue-white wash for a split second, then returning to deep darkness. Lightning flashes are subtle and infrequent, not every second - cinematic, atmospheric. HEAVY MONSOON RAIN - ADD REALISTICALLY: - Rain falls heavily from above throughout the entire video - a proper thick monsoon downpour, not a drizzle. - Because the motorcycle is moving forward, the raindrops STREAK TOWARD THE CAMERA at a diagonal angle - flying past the viewer's face from far to near, some passing directly by the camera lens. Classic POV "riding into a rainstorm" feel. - DEPTH OF FIELD MUST BE REALISTIC: - Raindrops very close to the camera are LARGE, SOFT, HEAVILY MOTION-BLURRED streaks flying past, some out of focus. - Raindrops in the middle distance are sharper streaks clearly visible cutting through the air. - Raindrops far away are tiny fine streaks densely filling the background as a sheet of rain. - RAIN INSIDE THE HEADLIGHT BEAM MUST GLOW - every raindrop caught in the warm halogen headlight cone lights up brightly in warm amber-white, becoming clearly visible as bright streaks against the dark forest. The headlight beam becomes a visible cone of illuminated falling rain - dramatic, cinematic. - Raindrops outside the headlight cone are faint cool-white streaks, barely visible against the dark forest. - Rain hits the muddy trail, palm leaves, and dripping undergrowth - puddles ripple, water splashes off the leaves, mist rises from the ground. - Water streams down the chrome handlebars, mirrors, fuel tank, and rider's arms, catching the headlight glow as tiny warm highlights. - Faint mist and rain haze fill the air, softening distant palm trunks and adding atmospheric depth. DISTANT THUNDER: - Deep rumbling thunder rolls in the distance every few seconds - not directly overhead, off in the distance. Adds ambient depth to the monsoon feel. Everything else stays IDENTICAL to the original video: - Same handlebar position, same fuel tank, same mirrors, same speedometer, same watch on the left wrist. - Same rider hand positions and green long-sleeve. - Same bike left-right sway motion, same cruising speed, same motion blur intensity on the trail and palms. - Same palm tree positions, same trail curvature, same overall composition and framing. - Same seamless loop - first frame = last frame. CRITICAL: - This is a RELIGHT + ADD RAIN + ADD THUNDER, not a new composition. Do not touch the palm trees. Do not touch the trail path. Do not touch the camera motion. Do not touch the bike sway. - The bike is NOT a separate layer on a black background - the entire scene is naturally lit as a real midnight monsoon ride with a halogen headlight cutting through the rain. - Overall look must be DEEP DARK NIGHT MONSOON - around midnight, heavy rain, occasional distant lightning, atmospheric. - Headlight is warm halogen (amber-yellow, ~3000K), classic old motorcycle look - NOT modern white LED. - Raindrops inside the headlight cone must GLOW brightly amber-white - the dramatic centerpiece of the visual. - Bike never stops, never slows, constant cruising speed. - Seamless loop, first frame identical to last frame.
Result
Chapter 15
Design the system before the pages.
When AI is going to build multiple pages, consistency has to be established before the implementation spreads.
The design system was built in Figma using typography, spacing, padding, variables, styles, reusable UI values, icons and responsive rules. Figma became the visual source of truth.
Figma Cloud MCP was used to make the design system available to AI. The UI kit was then translated into a development-ready system so the same values could be used across the project.
Give AI a system, not a collection of screenshots.
Chapter 16
Design page by page.
The entire website was not designed in one giant pass. Design and development happened page by page.
Homepage → Game → About → Chat → Tutorial
The homepage established the menu, footer, logo, background media, core layout, main interaction and mobile version. Then the next page was designed and converted. The same UI kit remained the shared foundation.
A strong system makes page-by-page development much easier because every new page does not require a new visual language.
Build the system once. Let the pages inherit it.
Chapter 17
Designer-led AI development.
You do not need to become a developer before experimenting with AI-assisted development.
The important skill is understanding enough structure to communicate what needs to happen. The useful mental model:
- Understand HTML structure
- Understand nested containers
- Understand layout relationships
- Understand spacing
- Understand responsive behaviour
- Understand what the interface should do
Then let AI handle the coding implementation. In this project, JavaScript knowledge was very limited. AI handled the coding while the design decisions, testing and feedback remained human-led.
You can direct implementation without personally writing every line of code.
Chapter 18
Build the interactions.
Once the base HTML existed, interactions were added progressively.
The homepage was used as the first implementation environment. The process included adding correct images and videos, building scene progression, defining menu behaviour, integrating audio, adding animations, defining interaction behaviour and refining the experience against the Figma design.
External references were also used when AI needed help understanding a particular interaction or visual behaviour.
The approach was not to build everything at once. One interaction was defined. It was tested. The problem was identified. The implementation was adjusted. Then the next interaction was handled.
Build one behaviour at a time. Complex experiences become manageable when each behaviour is isolated.
Chapter 19
Test like a user.
The website was run locally and repeatedly tested in Safari and Chrome.
Testing included comparing the browser output with Figma, replaying interactions, trying different scenarios, watching transitions repeatedly, finding one issue at a time and giving AI a precise description of the problem.
When something did not work, the problem was described directly to AI. Instead of asking AI to inspect its own implementation generally, the feedback was more specific: "This is the problem that is happening. It may be related to this particular area." That kept the debugging process focused.
AI can implement the fix, but the quality of the feedback determines how quickly you get there.
Chapter 20
Build a Safari-specific path.
Some browser problems are not worth forcing into the main implementation.
Safari introduced specific problems: WebM files were not loading properly, video sizes differed between Safari desktop and mobile, some interactions took too long to load, the eyelid-close transition was too heavy, and blur in that transition had to be removed for Safari.
A dedicated Safari engine was created. Its rule was explicit: anything changed through this engine is dedicated to Safari and should not affect other browsers.
This is a useful pattern for AI-assisted development: keep browser-specific work isolated when it needs to be.
Don't let a browser-specific workaround contaminate the main experience.
Chapter 21
Design mobile as its own experience.
Responsive design did not mean shrinking the desktop experience. The mobile context required different decisions.
The original videos were horizontal. Cropping them to fill a mobile screen would remove too much information from both sides. The solution was to create separate mobile videos.
- Separate video composition and orientation
- Different navigation and menu mechanism
- Scroll removed, hold/swipe interaction added
- Custom bottom logo and navigation area
- Arrows for moving between scenes
- Dedicated mobile menu toward the bottom
- Helmet shadow/edge to reinforce the POV
The helmet detail is subtle. It represents the small portion of the helmet naturally visible from the rider's perspective.
Responsive does not always mean rearranging the same design. Sometimes the interaction itself needs to change.
Chapter 22
Organise the AI work.
One large AI conversation eventually becomes difficult to manage.
After multiple rounds of edits, context becomes too large. Version tracking becomes difficult. Previous decisions are harder to retrieve. Different tasks start competing for context. A change in one area can affect another.
The solution was to split the work into specialised AI engines. Context files such as skill.md and cloud.md were used to hold the rules and context for those engines. The result is closer to a small AI team than one giant conversation.
When the project becomes too large for one conversation, split the context by responsibility.
Diagram
The twelve engines mapped as a team - each with role, input, output and what it connects to.
Deep dive See the twelve engines
- Full HTML / Coding - Site development, interactions, fixes, general implementation.
- Image Prompt Engine - Character sheets in, structured image prompts out.
- Video Prompt Engine - Continuous motion, seamless loops, scene behaviour.
- Relighting / Night Engine - Day-to-night conversion. Strictly light, colour and weather.
- PSY / Experimental - Sandbox for effects, animations and interactions.
- Music Engine - Music integration, play/pause/mute, audio-line visualisation.
- Text Animation Library - Reusable text animations across the site.
- Safari Engine - Safari-only fixes. Isolated from other browsers.
- Game Engine - Dedicated to the retro racer, its own codebase.
- Take Live Engine - Pre-launch QA and readiness checks.
- Design System Engine - Anything design-system-related.
- Mobile Responsive Engine - Mobile-specific work.
Plus the Chat Engine (Chapter 23) and the Behaviour Engine (Chapter 24).
Chapter 23
The Chat Engine.
The chatbot is not a generic "ask me anything" interface. It acts as a conversational guide through the website.
The Chat Engine decides what should be said, where it should appear, when it should appear, which version should appear and how the message relates to the user's current state.
The conversation was mapped using platform, location, sequence and trigger.
User state → Trigger → Chat Engine → Contextual response → Next user action
Triggers include site load, ready state, preloader dismissal, first scroll, arrow or touch signal, first press-and-hold, inactivity, game opening or closing, iframe loading, previous interaction state, time elapsed and scroll state. The chat can respond differently depending on what the user has already done.
A good conversational interface is not just copy. It is a state system.
Screenshot
chat-scenarios.csv opened in a viewer - first ten rows visible. Columns: Platform, Location, Sequence, Trigger, Copy, Notes.
Chapter 24
The Behaviour Engine.
The Chat Engine decides what the site says. The Behaviour Engine defines how the experience speaks and behaves.
Every headline, button, caption and chat bubble runs through this canon first.
Define the voice and behaviour before generating hundreds of interface messages.
Deep dive See the full canon
Voice
Person First person always. Never "we design."
Length Navigation 1-2 words. Buttons 2-3 words. Headlines 4-8 words. Body captions one sentence, often shorter.
Tone Quiet. Confident. No hype. Fragments are fine when they earn their weight.
Metaphor The ride runs underneath the experience but is never forced. If a line reads as poetry, it is earned. If it reads as biker cliché, cut it.
Words to use
road, ride, rider, work, brand, hands, line, place, terrain, night, dusk, horizon, gear
Words not to use
solutions, leverage, elevate, journey as a verb, empower, holistic, seamless, stakeholder, deliverable, ecosystem
Also banned "fifteen years." "UI/UX." Em-dashes. Use a hyphen or a full stop.
Behaviour
Continuous motion The ride never pauses. Nothing "stops."
Discovery over instruction Interactions are taught in the preloader once. Icon + one line. Then not explained again.
One gesture, one response Scroll down → next place. Scroll up → previous place. Cursor moves → camera turns. Long press → night mode. Enter click → ride starts and music begins.
Silent by default No sound before Enter.
Personal over promotional The site speaks in first person. It does not sound like a corporate profile.
No dark patterns No urgency countdowns. No popups. No email bribes. No cookie fear-mongering.
Warmth without saccharine Confidence comes from clarity, not shouting.
Chapter 25
The game: use a personal reference.
The game was not added because every portfolio needs a game.
It was added because a motorcycle game connected naturally to a childhood memory. Road Rash was part of the experience of growing up with early computers. That memory became a useful source for an unexpected interaction.
The game gives the website a break from the main ride. For younger users, the retro game can feel unexpected. For millennials who grew up with similar games, it can trigger recognition and nostalgia.
The purpose is simple: an unexpected break, a personal childhood connection, nostalgia, a playful interaction, an AI experiment. There is no need to invent a deeper professional metaphor.
A personal reference can become a strong interaction when it is used with restraint.
Chapter 26
Customise an existing foundation.
The game started from an existing open-source JavaScript racer.
Repository: github.com/jakesgordon/javascript-racer. It was downloaded directly from GitHub and placed in the project folder.
Claude was asked to understand the existing game, create a separate local environment, keep the game files isolated and apply the website's design system. The game was maintained in a separate folder and separate local environment.
Then the visual and interaction layer was customised: characters, backgrounds, colours, visual assets, police appearance, rider standing posture, riding posture, collision, sound effects and other interactions.
The game became a useful example of AI-assisted modification. Start with an existing technical foundation. Understand it. Define what should change. Use AI to implement the changes. Test the result.
You don't always need to build the technical foundation from zero.
Chapter 27
Game as an AI experiment.
The game demonstrates another useful AI workflow.
The visual assets were generated with ChatGPT and edited in Photoshop. The existing game logic provided a foundation. Claude handled the coding and modification work.
The designer remained responsible for what should change, how it should look, how it should behave, and whether the result felt right.
This is a useful model for non-developers: use an existing technical base where possible. Use AI to understand and modify it. Use visual judgement to direct the result.
AI can help customise existing systems without requiring you to build every underlying system from scratch.
Chapter 28
Music and sound.
Sound was treated as part of the interaction rather than something that plays automatically.
Music and game sound effects were sourced from Envato. The website remains silent until the user enters the experience.
A dedicated Music Engine handled the implementation: music integration, play, pause, mute, playing animation, line/waveform-style visual feedback and music interaction behaviour.
Sound should respond to the experience. It should not fight for attention before the user is ready.
Chapter 29
Asset organisation.
Generated assets become much easier to maintain when they are organised around the experience rather than scattered across one folder.
For each scene, the video system contains four variants: Desktop WebM, Desktop MP4, Mobile WebM, Mobile MP4. One scene = four files. Organised into separate folders.
This makes replacement simple. If a scene needs a new video later, the relevant file can be replaced without restructuring the entire project.
Good asset organisation is part of the design system too.
Chapter 30
Tools are roles, not a logo wall.
The project used many tools, but the useful way to understand them is by role.
Creative AI
- ChatGPT - image generation, visual assets, game sprites and backgrounds
- Claude - prompt generation, HTML, coding, AI engines, behaviour and conversation systems
- Magnific - video generation workflow, relighting workflow
- Seedance 2.0 - video generation
- Google Flow - video scenario experimentation
- Kling - additional video generation experiments
- Google Antigravity - additional coding-related experiments
- Gemini / Veo - additional Google AI experiments
Design
- Figma - entire design and layout, UI kit, typography, spacing, variables, styles, responsive design, icons
- Figma Cloud MCP - made the Figma system available to AI
- Photoshop - colour correction, image editing, game asset creation
- Illustrator - icons, logos, SVG (used relatively little)
Video / post
- After Effects - relighting refinement, night-mode editing, small video effects, brightness, levels, lighting
- Premiere Pro - cutting videos, speed adjustments, timing corrections
- Adobe Media Encoder - video compression
- HandBrake - file export (not an Adobe tool)
Audio / sourcing
- Envato - licensed fonts, music, game sound effects
Development
- HTML / CSS / Vanilla JavaScript
- GSAP 3.12.5 with ScrollTrigger
- Splitting.js
- Native <video>, WebM VP9, MP4 H.264 fallback
- Web Audio API
- Vercel
Game
- Existing JavaScript racer from GitHub
- Vanilla JavaScript, HTML5 Canvas
- Supabase JS SDK for the game backend setup
3D / helmet demo
- Next.js, React, TypeScript
- React Three Fiber, React Three Drei
- Three.js, Leva, ESLint
Cross-site glue
- iframe, postMessage, sessionStorage
- CSS custom properties
- position: sticky, clip-path, mix-blend-mode
References
- Awwwards
- React Bits
- Mobbin
- Framer Community
Chapter 31
The AI engine map.
The most useful way to show the AI workflow is not as a list of chatbots.
Show each engine as a specialist with responsibility, input, process, output and next step.
Specialised AI contexts make large projects easier to manage.
Deep dive See the engine specs
Prompt generation
- Input
- Rider sheet, motorcycle sheet, helmet sheet, place reference.
- Process
- Understand fixed visual characteristics. Translate them into a structured prompt. Keep POV and character details consistent.
- Output
- Image-generation prompt.
- Handoff
- ChatGPT generates the image.
Motion definition
- Input
- Final still image, desired motion, loop requirements.
- Process
- Describe continuous motion. Define what moves and what stays stable. Define the first-to-last-frame relationship.
- Output
- Video-generation prompt.
- Handoff
- Magnific + Seedance 2.0.
Day to night, structure preserved
- Input
- Existing day video, desired night treatment.
- Process
- Protect structure. Change lighting and weather only.
- Output
- Relighting prompt.
- Handoff
- Magnific + Seedance 2.0 + After Effects.
Browser-isolated fixes
- Input
- Safari-specific bug.
- Process
- Keep the fix isolated from other browsers.
- Output
- Safari-specific implementation.
Pre-launch readiness
- Input
- Complete project.
- Process
- Check code, SEO, links, database, chat, responsive behaviour, browsers and missing functionality.
- Output
- Pre-launch issue list and readiness state.
Chapter 32
Take Live Engine.
Before launch, the project went through a dedicated AI-assisted readiness check.
The Take Live Engine checks code quality, award-worthy site readiness, SEO in HTML, broken links, required functionality, database, chat, responsive behaviour, browser compatibility and anything that may have been missed.
Build → Check → Fix → Check again → Go live
The goal is not to ask AI to declare the site perfect. The goal is to create a repeatable checklist so important things are not forgotten.
A good launch process is a checklist, not a feeling.
Chapter 33
The complete visitor flow.
The main website experience follows a simple path.
-
Invitation.
The visitor lands on a preloader inviting them to come along for a ride.
-
Enter.
The visitor chooses "I'm in."
-
The ride starts.
A background video shows the rider moving. A black overlay appears. The conversational guide begins.
-
Explore.
The visitor moves through different scenes. The motorcycle POV continues. Each video loops continuously.
-
Night.
A long press reveals the night version. The same scene becomes a night version without rebuilding the composition.
-
Game.
The visitor can enter the retro motorcycle game. An unexpected break and an AI experiment.
-
Return.
The visitor can return from the game to the main ride.
Invitation → Ride → Explore → Day/Night → Game → Return
Chapter 34
The real lesson from the process.
The most important lesson is not which AI tool was used. It is the order of the thinking.
A useful sequence:
- Find something genuinely personal.
- Explore the concept before designing it.
- Give the concept a story.
- Give the story a behaviour.
- Identify what must stay consistent.
- Build references.
- Test the visual direction.
- Turn successful experiments into systems.
- Use AI for repeatable generation.
- Filter before expensive production.
- Build the design system.
- Implement page by page.
- Test locally.
- Isolate browser-specific problems.
- Split AI contexts as the project grows.
- Run a launch checklist.
The tools can change. The thinking sequence remains useful.
Final chapter
Start with the idea.
Don't start by building.
Technology will be available. AI tools will keep changing. New generation models will keep appearing. The harder part is deciding what is worth making.
Start with something unique to yourself. Give it a story. Give it a behaviour. Then look at the technology that can bring that idea to life.
The goal is not to use every new tool. The goal is to find the right combination of thinking, design, experimentation and technology for the experience you want to create.
If the idea is yours, the result will already have something a template cannot give it. AI can help build the bridge.
Find your idea. Give it a story. Give it a behaviour. Then build.