This is the kind of task Astra is actually for. The prompt hands it a whole interlocking system, a treadmill world, traffic rules, police AI, a post-processing chain, and expects it to hold all of it at once. That is the "novel environment" strength from the benchmarks (the full breakdown is in my Astra guide). On the older models this prompt comes back as a skeleton with comments saying "add traffic here". On Astra it comes back as a game.
Everything is in here: the game, the tuning numbers, the traps, and the exact image prompts for the assets. It is long on purpose so Astra builds the finished thing rather than a demo. Do not trim it.
You are building a complete browser game for me in one go. Produce every file in full, no placeholders, no "add later" comments. If anything is ambiguous, pick the option that looks best and keep going. At the end, give me the asset list from the ASSETS section so I can generate them in Higgsfield and drop them into the folder.
Build a browser game called Neon Pursuit: a night-time Tokyo street chase. Vanilla JavaScript with Three.js (ES modules, an importmap, no bundler, no framework). Everything lives in one folder: index.html, client.js, a vendor folder for Three.js plus its postprocessing and GLTFLoader modules, a models folder, a tex folder. It must run from any static host through a local server, with every asset path relative. It must run immediately with procedural fallbacks (box-built cars, canvas textures) before any asset exists.
THE FANTASY
Third-person chase camera low behind a red 1990s Japanese sports coupe. Six lanes of one-way traffic to weave through. Police cruisers glued to my bumper. Neon canyon of buildings on both sides, rain, wet reflective road, a Tokyo skyline with Tokyo Tower at the vanishing point. It should feel like a Forza or Need for Speed screenshot, not a tech demo.
WORLD (treadmill)
The player car stays near the origin facing negative Z. Everything else (road texture, buildings, traffic, pedestrians, police) moves toward positive Z at the player's speed and is recycled when it passes behind the camera. Road is 24 m wide (lanes at x = -10, -6, -2, 2, 6, 10), a 440 m long plane. City is built from 16 recycled slots of 24 m each on both sides: random building boxes 10 to 26 m wide, 14 to 70 m tall, with a separate 4.6 m ground-floor box. Every slot also has a streetlight, a concrete utility pole with three sagging wires drawn as line segments, a 50 percent chance of a glowing vending machine, and every fifth slot either a green overhead highway gantry sign (Japanese and English text drawn on a canvas texture) or a zebra crossing decal. Sidewalks are 5 m wide with a curb. Behind everything, a huge photo panorama of the Tokyo skyline on a plane at z = -600, 900 units tall so the widest field of view never sees its edge, with fog disabled on it.
GROUND
Three scrolling layers: asphalt texture on the road (metalness 0.45, roughness driven by a canvas puddle map so reflections break into patches, envMapIntensity 0.7), a transparent lane-paint decal on top with polygon offset, and a sidewalk texture. Scroll all of them every frame by distance travelled divided by tile length, and ADD to the offset (v grows away from the camera, so adding slides the pattern toward the player). Wrap offsets with modulo 1 so they never drift. Under every neon sign and streetlight lay a thin additive gradient streak plane on the road in that sign's colour: that is the wet reflection.
LOOK
ACES tone mapping, exposure 1.0. Scene fog dark indigo from 45 to 300 m. Hemisphere light 0.5, ambient 0.25, one warm directional key light at 0.85 from behind the camera so the hero paint reads, one spotlight headlight on the player. Postprocessing chain: RenderPass, UnrealBloomPass at half resolution (strength 0.6, radius 0.38, threshold 1.04), then a custom grade ShaderPass (cool blue shadow tint 0.74/0.84/1.18 mixed in below 70 percent luminance, 12 percent desaturation, vignette 0.6, lift 0.9), then OutputPass. Only things meant to glow may exceed 1.0: multiply neon sign colours by about 2.1, sign halos by 1.6, streetlight lamps by 1.7, taillight bars by 1.6, exhaust flames by 2.6. Building facades use the photo texture as both map and emissive map with emissive intensity 0.55 (storefronts 0.9) so windows glow without blooming. Reflections come from a PMREM environment generated once from a tiny room scene of magenta, cyan and warm emissive panels.
CARS
Load five GLB models: player, police, taxi, sedan, van. Normalise each on load: rotate so the longest horizontal axis runs along Z, scale to a real length (player 4.5 m, police 4.8, taxi 4.7, sedan 4.5, van 4.4), drop the base to y = 0, rotate 180 degrees if the model faces the camera. Set emissiveIntensity to 0.22 on every loaded material (generated models ship a full-strength emissive map that makes cars self-glow), metalness at most 0.55, roughness at least 0.38. Tint police to 0.5 and vans to 0.6 with matte settings so white bodywork never blooms. Until a model loads, use the box-built fallback car. Add slim emissive taillight bars, small additive glow sprites for lights, a pink additive underglow under the player, and two additive cone flames behind the exhausts that only show while boosting.
HANDLING
Forward: hold W for throttle, accelerate at (16 minus 0.1 times speed) m/s squared toward a 72 m/s (260 km/h) top speed, S brakes at 26, coasting decays at 5 with a floor of 8 m/s so the car never stalls mid-run. SPACE boost: a meter of 2.6 seconds that recharges over 9 seconds, plus 0.18 per near miss, only ignites above 5 percent, pushes to 100 m/s (360 km/h) at 34 m/s squared. Lateral: A and D set a target lateral velocity of (9 plus 0.16 times speed) m/s, damped at rate 7, position clamped to plus or minus 10.8 m with a spark burst and speed scrub when you scrape the curb. Visual yaw of minus 0.022 times lateral velocity, roll of 0.01 times it, slight pitch on boost and brake.
TRAFFIC
Pool of 56 cars (22 percent taxis, 14 percent vans, the rest sedans in white, silver, black, navy, maroon, green). Target count 30 at the start rising to 50 by distance travelled. Guarantee a spawn attempt every 14 m travelled plus random extras, spawning 260 to 330 m ahead in a random free lane, never more than 5 cars within a 14 m band so one lane always stays open, 16 m minimum gap per lane. Speeds 12 to 28 m/s. Cars change lanes every 3 to 9 seconds if the neighbouring lane is clear. Cull 30 m behind the player.
COLLISIONS AND NEAR MISSES
Axis-aligned box test against the player. Rear-ending drops the player to max(traffic speed times 0.9, speed minus 0.7 times the closing speed); a side swipe scrubs 15 percent. A crash cancels boost, costs a quarter of the meter, kicks the player sideways, spins the other car, spawns 40 orange sparks, shakes the camera, resets the combo and gives 0.9 s of invulnerability. A near miss counts when a car passes within 1.3 m of the player's side above 25 m/s without touching: combo plus one, 100 points times combo, boost plus 0.18, a whoosh and a rising ding, a floating "NEAR MISS x3" label. Combo resets after 3 seconds.
POLICE
Three cruisers. Each owns a lane offset (minus 3.4, 0, plus 3.4 m from the player) and a staggered base gap (6, 9.2, 12.4 m), so they never overlap. Desired gap = base divided by the square root of an aggression value (1 plus distance over 2500, capped at 3.5) plus 0.5 times how far the player is above 62 m/s, minus a surge, plus 14 m while boosting, never closer than 4.8 m. Every 4 to 10 seconds a cruiser surges. From heat level 3 (heat is one star per 1500 m) a cruiser alongside within 5.4 m performs a PIT shove: sideways kick of 7 m/s, sparks, a 7 second cooldown. Bust meter: after a 4 second grace at the start, it fills at 0.38 per second when the nearest cruiser is within 5.2 m and the player is below 18 m/s, at 0.2 per second when within 5.2 m below 30 m/s, slowly when within 7.5 m and slow, and drains otherwise. Full meter ends the run. If no cruiser is within 55 m for 6 seconds, award 2500 points and show LOST THEM. Light bars alternate red and blue at 14 Hz with two point lights on the nearest cruiser, and a siren whose volume rises with proximity and pans to its side.
CAMERA
Position (0.75 times player x, 3.6 plus a little with speed, 8.2 plus 1.6 times speed fraction), damped at rates 6, 6 and 4, looking at (0.9 times player x plus a lead from lateral velocity, 0.4, minus 16). Field of view 62 plus 26 times speed fraction squared plus 8 while boosting. Shake from crashes decays at 2.2 per second, with a small constant tremor at top speed. A 2D canvas overlay draws radial speed lines above 45 m/s.
EXTRAS
Rain as 500 line segments that fall and lean backward with speed. 48 pedestrians with capsule bodies, spherical heads, swinging cylinder legs and cone umbrellas walking both sidewalks in both directions. Sparks as pooled additive point bursts with gravity and floor bounce. WebAudio with no audio files: sawtooth plus square engine through a lowpass that opens with speed, a two-oscillator siren wail, filtered-noise whoosh for near misses, a sine drop plus noise burst for crashes, a rising sawtooth for boost. Audio starts on the first click.
SCREENS
Title screen over the hero image: kicker MIDNIGHT TOKYO, huge gradient title NEON PURSUIT, one line of copy, four key chips, a pink START ENGINE pill. HUD: distance in km, points and combo, heat stars top left; speed in km/h with a boost bar top right; floating combo text; a POLICE CLOSING IN bar that appears only when the meter is above 2 percent; a control hint at the bottom. Game over: PULLED OVER, BUSTED, distance, score, best (kept in localStorage), RUN AGAIN.
TRAPS TO AVOID
Load the Japanese web font (Noto Sans JP) before drawing sign textures or the kanji render as boxes. GLTFLoader from the Three.js examples imports a BufferGeometryUtils file from a sibling utils folder; vendor both. Keep bloom threshold at or above 1.0 and push only real light sources above 1.0, otherwise white cars and windows bloom into blobs. Halve the bloom resolution for performance. Cap the pixel ratio at 1.5. When the road looks like it is standing still, the texture offsets are not being scrolled; when it runs backwards, the sign is wrong. Do not add a physics engine: lanes are numbers and collisions are boxes, that is why it runs at 60 fps in a tab.
ASSETS (I generate these in Higgsfield, you wire them in)
Expect these files and load each one only if it exists: models/player.glb, models/police.glb, models/taxi.glb, models/sedan.glb, models/van.glb, tex/facade0.jpg to tex/facade3.jpg (portrait facade photos, tile 9 m wide by 16 m tall), tex/storefront.jpg (a wide strip for the ground floors, one tile per 12 m), tex/asphalt.jpg (convert to grey on load with a canvas grayscale filter, tile 24 m long), tex/sidewalk.jpg, skyline.jpg (crop to the top 62 percent, horizon about 89 percent down), cover.jpg for the title screen. When I say "assets are in", wire them in using the CARS rules above. Here are the exact image prompts I will run, so you know what each file looks like:
models/player.glb, from an image-to-3D of: Product photo of a candy-red 1990s Japanese sports coupe with a low rear wing and smooth rounded body, glossy paint, dark tinted windows, 3/4 front-left view, the entire car fully visible with generous margin, centered, on a flat seamless neutral light-gray studio background, soft even lighting, no cast shadows on the background, no reflections on the floor, no text, no logos.
models/police.glb, from: Product photo of a Japanese police patrol sedan, white upper body with black lower body panels, red light bar on the roof, Toyota Crown style four-door, 3/4 front-left view, the entire car fully visible with generous margin, centered, flat seamless neutral light-gray studio background, soft even lighting, no cast shadows, no text.
models/taxi.glb, from: Product photo of a Tokyo taxi, black Toyota Crown Comfort four-door sedan with a small yellow roof lamp and chrome trim, 3/4 front-left view, the entire car fully visible with generous margin, centered, flat seamless neutral light-gray studio background, soft even lighting, no cast shadows, no text.
models/sedan.glb, from: Product photo of a silver modern Japanese compact four-door sedan, clean simple body, 3/4 front-left view, the entire car fully visible with generous margin, centered, flat seamless neutral light-gray studio background, soft even lighting, no cast shadows, no text.
models/van.glb, from: Product photo of a white boxy Japanese kei delivery van with a tall body and small wheels, 3/4 front-left view, the entire van fully visible with generous margin, centered, flat seamless neutral light-gray studio background, soft even lighting, no cast shadows, no text.
tex/facade0.jpg (9:16): Seamless tileable texture, perfectly straight-on orthographic view of a modern Tokyo office tower facade at night, a regular grid of glass and dark concrete, floors of mixed lit and dark windows with cool blue-white and warm interior light, edge-to-edge with no borders, no ground floor, no sky, no perspective, flat elevation, photoreal.
tex/facade1.jpg (9:16): Seamless tileable texture, perfectly straight-on orthographic view of a Tokyo residential apartment building facade at night, rows of concrete balconies with metal railings, air-conditioner units, warm lit windows with curtains, a few dark windows, edge-to-edge with no borders, no ground floor, no sky, no perspective, flat elevation, photoreal.
tex/facade2.jpg (9:16): Seamless tileable texture, perfectly straight-on orthographic view of a narrow Tokyo commercial building facade at night in Kabukicho style, stacked colorful illuminated signboards for bars, karaoke and restaurants with Japanese text, vertical neon signs, small windows between signs, edge-to-edge with no borders, no ground floor, no sky, no perspective, flat elevation, photoreal.
tex/facade3.jpg (9:16): Seamless tileable texture, perfectly straight-on orthographic view of an older weathered Tokyo building facade at night, beige tiled walls, small windows with lit paper screens and frosted glass, exposed pipes and cables, rust stains, a few air-conditioner units, edge-to-edge with no borders, no ground floor, no sky, no perspective, flat elevation, photoreal.
tex/storefront.jpg (21:9): Seamless wide tileable strip, perfectly straight-on view of a row of Tokyo ground-floor storefronts at night in the rain: an izakaya with red paper lanterns and a noren curtain, a brightly glowing convenience store, a ramen shop with steam, a lit vending machine, a pachinko entrance with flashing lights, a shuttered shop, all under a continuous line of awnings, wet pavement along the bottom edge, edge-to-edge with no borders, no sky, no perspective, flat elevation, photoreal.
tex/asphalt.jpg (1:1): Seamless tileable texture, top-down view of wet dark asphalt at night, fine grain, a few shallow puddles, subtle cracks, no lane markings, no objects, edge-to-edge, photoreal.
tex/sidewalk.jpg (1:1): Seamless tileable texture, top-down view of Japanese sidewalk paving, gray square concrete pavers with a yellow tactile guide strip running along one edge, slightly wet at night, edge-to-edge, no objects, photoreal.
skyline.jpg (21:9): Ultra-wide panoramic photograph of the Tokyo skyline at night seen from far away across a dark city, horizontal horizon exactly at the vertical center of the frame. Dense skyscrapers with thousands of lit windows, Tokyo Tower glowing orange-red on the right third, faint neon magenta and cyan light haze rising from the streets, low rain clouds lit purple from below, wet humid atmosphere, fog density 30 percent. Sky above the horizon: deep indigo fading to near black at the top. Everything below the horizon line is a flat dark ground plane with only distant light pinpricks, no foreground objects, no road, no people, no text. Photoreal, cinematic, moody.
cover.jpg (16:9): Cinematic video-game key art, rear three-quarter view of a glossy candy-red sports coupe with a low rear wing racing through a rain-soaked Shibuya street at night at 250 km/h. The camera sits low behind the car at bumper height, the car in the lower-left third of frame, motion blur streaking the neon signs into long lines. Wet asphalt mirrors magenta, cyan and orange neon from towering Japanese signboards on both sides of the street. Red taillights glowing hot, orange sparks scattering from the rear diffuser, spray kicking off the tyres. Two police cars far behind in the fog with red and blue light bars flaring. Traffic taillights ahead as soft red bokeh. Rain streaks lit by the neon. Photoreal AAA racing-game render, high contrast, deep blacks, saturated neon, film grain 10 percent, no text, no logos, no watermark.
The prompts are already in the box above, next to the filename each one becomes. Run the five car images in Higgsfield, then put each one through the image-to-3D tool and save the result under the matching name in the models folder. Run the texture, skyline and cover prompts as images and save them under their names. Then tell Astra "assets are in".
These are the notes I gave, in order, after playing each build. Give Astra the same ones if you see the same things.
๐จ Higgsfield (cars, textures, skyline, hero art): higgsfield.ai
๐ฎ Play it: cindyzhu.com.au/play/neon-pursuit
๐ง GPT-6 Astra, the full breakdown: my Astra guide