# Coaster Maps Exceptional 3D Theme Park Challenge

## The prompt

Build an exceptional, visually stunning, fully playable 3D theme-park simulation that runs in a modern desktop browser. The park is called **Coaster Maps**.

This should impress me. Do not stop at a basic scene, static model showcase, shallow prototype, or collection of decorative rides. Create a cohesive park that feels alive, rewards exploration, and is genuinely fun to play. Push the limits of what you can accomplish while keeping the result stable, responsive, and understandable to a first-time player.

You are responsible for the complete experience: creative direction, park layout, gameplay, simulation, original visual identity, 3D assets, textures, lighting, animation, audio where appropriate, user interface, performance, and testing. Make strong creative decisions without waiting for me to specify every detail. Pay close attention to scale, motion, readability, atmosphere, interaction feedback, and small environmental details.

## Core experience

Create a theme park that the player can freely explore in first person or a similarly immersive perspective. The player must be able to:

- Walk around a substantial, thoughtfully designed park.
- Discover distinct themed areas, paths, landscaping, terrain, scenery, signs, lighting, and landmarks.
- Board and ride multiple functioning attractions from an appropriate loading area.
- Play at least one interactive midway or skill game with a real objective, controls, outcome, and feedback.
- Enter or approach shops and purchase meaningful items through an actual in-game transaction flow.
- Understand the controls and nearby interactions without reading source code.
- Pause, resume, and recover cleanly from ride, game, shop, and movement states.

The experience should have an intentional opening, an inviting park entrance, clear navigation, satisfying discovery, and enough variety that exploring feels worthwhile. The park must feel like one authored place rather than unrelated objects scattered across flat ground.

## Roller coasters and ride physics

Roller coasters are the centerpiece. Include at least two substantially different, fully rideable roller coasters. They must have complete track layouts, stations, supports, trains, boarding behavior, and convincing motion.

Coaster speed must respond believably to the track. Trains should accelerate downhill, lose speed uphill, and use a deliberate propulsion system such as a lift hill, launch, tire drive, or chain. Avoid moving a train around the entire course at one constant speed. Use a physics-based or carefully modeled energy system with appropriate friction, braking, acceleration, gravity, and minimum-speed handling.

Across the coaster collection, include several interesting elements such as:

- A lift hill or launch sequence.
- Meaningful drops and airtime hills.
- Banked turns and changes in elevation.
- At least one inversion, such as a vertical loop, corkscrew, or zero-gravity roll.
- Brakes, a final brake run, and a believable return to the station.
- Track routed around, through, above, or beneath other scenery so the layout feels integrated with the park.

The ride camera must remain correctly oriented to the train and track. The player should feel the changing pitch, banking, speed, height, and direction without excessive clipping, camera jitter, broken orientation, or an obstructed view. Coaster trains must follow the track accurately and should not visibly detach from it.

## Additional attractions

Include several additional working attractions with visibly different motion and ride experiences. Strong candidates include:

- Ferris wheel or observation wheel.
- Swinging pirate ship.
- Carousel or merry-go-round.
- Drop tower.
- Park railroad with a train that travels through the park.
- Drivable go-karts on a complete track with steering, acceleration, braking, collision boundaries, and a lap or time objective.

You do not need to use every suggestion, and you may invent better attractions. Prioritize depth, polish, and variety over filling the park with many shallow objects. At minimum, the finished park should contain two roller coasters, three other ride types, one playable game, and one meaningful shop experience.

## Living park simulation

The park should operate as a simulation, not merely a backdrop.

Include guests who move purposefully through the park and visibly participate in it. Guests should have enough behavioral variation to feel alive: choosing destinations, walking paths, forming or joining queues, riding attractions, visiting shops or games, and leaving destinations afterward. They should not all move in identical loops or stand in random places.

Include park employees in recognizable roles, such as ride operators, shop workers, custodial staff, mechanics, security, or entertainers. Add at least one type of entertainer or ambient performance that contributes to the park atmosphere. Employee and guest behavior may be lightweight, but it should be observable, coherent, and connected to the park systems.

Track and display useful simulation state such as attendance, guest happiness, queue length, ride throughput, park funds, purchases, game results, time of day, or weather. These values should be driven by real events in the simulation rather than arbitrary counters.

Shops must support actual purchases. The player should have money or another clear resource, see prices, choose an item, complete or cancel the transaction, receive feedback, and have the result affect inventory, status, score, appearance, or another visible part of the experience. Guests should also be able to visit shops in the simulation.

## Visual direction and original assets

Create an original visual identity for **Coaster Maps**, including an original logo, park signage, color system, map-inspired motifs, and consistent attraction branding. The park should look authored and premium.

Generate the models, materials, textures, logos, signs, icons, and other visual assets specifically for this project. Procedural geometry and textures are encouraged. Image-generation tools may be used when available, but all resulting work must be original and appropriate for the park. Do not use copyrighted characters, existing theme-park brands, third-party logos, or unlicensed asset packs. Do not rely on remote assets that can disappear after delivery.

Use terrain, elevation, foliage, architecture, props, queues, fences, lighting, shadows, particles, water, atmospheric effects, and environmental storytelling to create depth. Avoid an empty flat field, primitive-only appearance, repetitive scenery, unreadable darkness, excessive bloom, or visual effects that hide the rides.

Lighting should be a deliberate part of the experience. Use a compelling time of day or a dynamic day/night cycle, readable path lighting, attraction lighting, shop illumination, emissive signs, and balanced contrast. The park must remain navigable and visually clear.

Animations must communicate weight and mechanical purpose. Ride vehicles, wheels, restraints, platforms, gates, signs, guests, entertainers, and environmental effects should move consistently with their roles. Sound and music may be procedural or generated, but must be original, controllable, and not required for understanding the game.

## User experience

Provide a polished, responsive interface using Material 3 design principles where interface elements are needed. The UI should complement the world rather than cover it.

Include:

- A strong loading or entry experience with Coaster Maps branding.
- Concise control instructions.
- Clear interaction prompts that change with context.
- Ride, queue, game, shop, money, and simulation feedback where relevant.
- A pause surface and settings for essential comfort or audio options.
- Legible typography, accessible contrast, visible keyboard focus, and sensible touch targets.
- Helpful error states when a required capability is unavailable.

Desktop keyboard and mouse controls are required. Touch support is strongly preferred if it can be implemented without reducing desktop quality. Avoid trapping the player in pointer lock, dialogs, rides, shops, or paused state.

## Technical and architectural expectations

- The finished experience must run in a modern browser and be launchable with documented local commands.
- Use an appropriate browser 3D technology such as WebGL, WebGPU, Three.js, Babylon.js, or a comparable stack.
- Keep the project self-contained and reproducible from the delivered files.
- Use clean code and clean architecture. Separate simulation state, input, rendering, ride behavior, UI, and composition responsibilities.
- Model ride and interaction states explicitly. Invalid transitions and malformed required data should fail fast with actionable errors.
- Address the real cause of defects. Do not add silent fallback behavior merely to hide broken systems.
- Use deterministic or seedable behavior where it materially improves testing and reproducibility.
- Maintain responsive frame pacing with a meaningful number of guests and active rides. Use instancing, pooling, level-of-detail decisions, or other appropriate optimizations.
- Prevent obvious collision failures, walking through major structures, leaving the playable park unintentionally, broken ride boarding, duplicated event handlers, runaway animation loops, and resource leaks.
- Document the project structure, controls, prerequisites, start command, verification command, and known limitations.

## Required self-testing and iteration

Do not treat compilation as proof that the park works. Run the experience in a real browser, inspect the rendered result, interact with it, and iterate on problems you observe.

Before declaring completion, verify at minimum:

1. The project installs, type-checks, tests, and builds successfully.
2. The loading and entry flow reaches the playable park without console errors.
3. The player can walk, look around, navigate paths, and collide with major boundaries.
4. Every required ride can be found, boarded, experienced through a full cycle, and exited safely.
5. Coaster speed changes visibly and correctly with hills, drops, propulsion, and brakes.
6. The playable game accepts input, produces an outcome, and can be replayed or exited.
7. A shop purchase can be completed and visibly affects the player's state.
8. Guests, employees, entertainers, queues, shops, and simulation metrics behave coherently over time.
9. Pause, resume, settings, pointer lock, and escape behavior do not trap the player.
10. The layout works at common desktop sizes and, if supported, a narrow mobile viewport without overflow or unusable controls.
11. The final scene is visually inspected for clipping, scale errors, broken materials, unreadable UI, poor lighting, empty areas, and camera obstruction.
12. The production build works from its documented served path with no missing local assets or unexpected remote dependencies.

Create automated tests for deterministic simulation and critical state transitions. Keep browser-visible proof of the important flows. Fix problems discovered during testing before presenting the result.

## Definition of done

The project is complete only when it is a polished, playable, browser-based 3D theme park—not merely a plan or mockup—and the delivered build demonstrates all mandatory features:

- An original, visually cohesive Coaster Maps park.
- Immersive player exploration.
- Two physics-informed rideable roller coasters.
- Three additional working ride types.
- Purposeful guests, employees, and at least one entertainer behavior.
- A playable game.
- A shop with a real purchase flow.
- Original models, textures, logos, signage, and branding.
- A functioning simulation with event-driven park metrics.
- Clear controls and polished Material 3 interface surfaces.
- Successful automated verification and hands-on browser testing.

After satisfying these requirements, use your remaining judgment and capability to add memorable details, surprises, interactions, environmental storytelling, and polish. The goal is not just to meet a checklist. The goal is to create a park I am excited to explore, a coaster ride that feels thrilling, and a result that makes me say: **I am impressed.**
