s-macke/maniac-mansion-3d

A browser-based 3D walkthrough of Maniac Mansion, preserving the original EGA artwork and colors. Built with Blender, Three.js and AI.

TypeScript

1

28 commits

updated Sep 27, 2026

See the code

See what people are saying

README

Maniac Mansion in 3D

Walk through the Maniac Mansion house in your browser. This fan project reimagines the original EGA backgrounds as connected 3D spaces, keeping their distinctive colors, furniture and odd little details while letting you look beyond the original camera angle.

Explore the mansion →

Original EGA artworkRecreated in 3D
Original living-room background from Maniac MansionExplore the mansion: the living room recreated in 3D

Click either image to explore the mansion.

https://github.com/user-attachments/assets/97f56075-cd70-4319-b6c8-3dcc580e6338

Explore the house

Start outside, walk up the porch steps and open the front doors. From the entrance hall, explore 34 room spaces: the library and kitchen, bedrooms and attics, the observatory, the cellar laboratories, and the pool and garage. Drain the pool to climb down into its basin, or follow a ladder to another floor.

This is a first-person architectural walkthrough. There are no puzzles to solve, inventory items to collect or characters to control. Doors, ladders and hidden passages let you explore without playing through the original game's puzzles.

The rooms are modeled from the original artwork with simple geometry and soft baked lighting. Some dimensions, unseen walls and connections are interpretations: the original painted backgrounds do not describe a single physically consistent building. Doorway portals let rooms retain their own proportions while remaining connected as you walk through them.

Use Original to compare the current room with its EGA background. On desktop, the small preview can be enlarged; on mobile, the image opens in an overlay and pauses movement.

Jump to a room

These links start you in the selected room, with the rest of the house still connected. The pool link starts on the deck; drain the pool there to explore the basin.

Controls

ActionDesktop
WalkWASD, or ↑ / ↓
Walk fasterHold Shift
Look aroundClick the scene and move the mouse, or drag; ← / → turn
Open or close doors, use ladders and other interactionsApproach, aim and press E
Pause / release the mouseEsc
Reset positionR

On touch devices, place your thumb anywhere on the left half to create a floating joystick. Drag it to walk; release to stop. Swipe on the right half to look around, and tap the contextual action button for doors and ladders. Doors start closed; the introductory controls hint disappears after you begin walking.

Run locally

A fresh checkout contains the source artwork and builders. Generate the models and website first using Docker with Compose:

git clone https://github.com/s-macke/maniac-mansion-3d.git
cd maniac-mansion-3d
./docker-build.sh all

The container includes Blender, Python and npm. The first build bakes all rooms and can take tens of minutes. Then serve the finished website with Python 3:

python3 -m http.server 5174 --bind 127.0.0.1 --directory web/dist/client

Open http://127.0.0.1:5174/.

If Node.js is installed, ./walkthrough.sh can serve the built site instead. For building without Docker, see the local toolchain and rebuild instructions.

How it is built

Blender Python builders generate the room geometry, bake the lighting and export compact GLB models. A Three.js viewer assembles the rooms in the browser, reuses shared door and ladder assets, and loads connected spaces as needed. Lighting is baked into the assets; the browser does not need global illumination.

The result is a static website with no backend. Asset URLs are relative, so the same build can run at a domain root or in a subdirectory. The GitHub Pages workflow generates the Blender assets, compiles and checks the website, and deploys from main when manually started with Actions → Build and deploy GitHub Pages → Run workflow.

LocationContents
source/Original background references
rooms/Per-room Blender builders, configuration and notes
shared/Reusable door and ladder builders
house/layout.jsonRoom spaces and connections
scripts/Asset generation, baking and build tools
web/Browser viewer, navigation and tests
generated/Local Blender scenes, models, reports and previews; ignored by Git

After the initial build, rebuild just one room and the website with:

./docker-build.sh room kitchen --site

For viewer development, use ./walkthrough.sh dev with Node.js 22.13 or newer. See the Docker guide for incremental builds and the architecture guide for where changes belong.

Further reading

Credits

Maniac Mansion and its original artwork were created by Lucasfilm Games. This is an unofficial fan reconstruction; the original game and artwork belong to their respective rights holders.

Contributors

s-macke

28 commits

s-macke/maniac-mansion-3d

A browser-based 3D walkthrough of Maniac Mansion, preserving the original EGA artwork and colors. Built with Blender, Three.js and AI.

TypeScript

1

28 commits

updated Sep 27, 2026

See the code

See what people are saying

README

Maniac Mansion in 3D

Walk through the Maniac Mansion house in your browser. This fan project reimagines the original EGA backgrounds as connected 3D spaces, keeping their distinctive colors, furniture and odd little details while letting you look beyond the original camera angle.

Explore the mansion →

Original EGA artworkRecreated in 3D
Original living-room background from Maniac MansionExplore the mansion: the living room recreated in 3D

Click either image to explore the mansion.

https://github.com/user-attachments/assets/97f56075-cd70-4319-b6c8-3dcc580e6338

Explore the house

Start outside, walk up the porch steps and open the front doors. From the entrance hall, explore 34 room spaces: the library and kitchen, bedrooms and attics, the observatory, the cellar laboratories, and the pool and garage. Drain the pool to climb down into its basin, or follow a ladder to another floor.

This is a first-person architectural walkthrough. There are no puzzles to solve, inventory items to collect or characters to control. Doors, ladders and hidden passages let you explore without playing through the original game's puzzles.

The rooms are modeled from the original artwork with simple geometry and soft baked lighting. Some dimensions, unseen walls and connections are interpretations: the original painted backgrounds do not describe a single physically consistent building. Doorway portals let rooms retain their own proportions while remaining connected as you walk through them.

Use Original to compare the current room with its EGA background. On desktop, the small preview can be enlarged; on mobile, the image opens in an overlay and pauses movement.

Jump to a room

These links start you in the selected room, with the rest of the house still connected. The pool link starts on the deck; drain the pool there to explore the basin.

Controls

ActionDesktop
WalkWASD, or ↑ / ↓
Walk fasterHold Shift
Look aroundClick the scene and move the mouse, or drag; ← / → turn
Open or close doors, use ladders and other interactionsApproach, aim and press E
Pause / release the mouseEsc
Reset positionR

On touch devices, place your thumb anywhere on the left half to create a floating joystick. Drag it to walk; release to stop. Swipe on the right half to look around, and tap the contextual action button for doors and ladders. Doors start closed; the introductory controls hint disappears after you begin walking.

Run locally

A fresh checkout contains the source artwork and builders. Generate the models and website first using Docker with Compose:

git clone https://github.com/s-macke/maniac-mansion-3d.git
cd maniac-mansion-3d
./docker-build.sh all

The container includes Blender, Python and npm. The first build bakes all rooms and can take tens of minutes. Then serve the finished website with Python 3:

python3 -m http.server 5174 --bind 127.0.0.1 --directory web/dist/client

Open http://127.0.0.1:5174/.

If Node.js is installed, ./walkthrough.sh can serve the built site instead. For building without Docker, see the local toolchain and rebuild instructions.

How it is built

Blender Python builders generate the room geometry, bake the lighting and export compact GLB models. A Three.js viewer assembles the rooms in the browser, reuses shared door and ladder assets, and loads connected spaces as needed. Lighting is baked into the assets; the browser does not need global illumination.

The result is a static website with no backend. Asset URLs are relative, so the same build can run at a domain root or in a subdirectory. The GitHub Pages workflow generates the Blender assets, compiles and checks the website, and deploys from main when manually started with Actions → Build and deploy GitHub Pages → Run workflow.

LocationContents
source/Original background references
rooms/Per-room Blender builders, configuration and notes
shared/Reusable door and ladder builders
house/layout.jsonRoom spaces and connections
scripts/Asset generation, baking and build tools
web/Browser viewer, navigation and tests
generated/Local Blender scenes, models, reports and previews; ignored by Git

After the initial build, rebuild just one room and the website with:

./docker-build.sh room kitchen --site

For viewer development, use ./walkthrough.sh dev with Node.js 22.13 or newer. See the Docker guide for incremental builds and the architecture guide for where changes belong.

Further reading

Credits

Maniac Mansion and its original artwork were created by Lucasfilm Games. This is an unofficial fan reconstruction; the original game and artwork belong to their respective rights holders.

Contributors

s-macke

28 commits

Languages

TypeScript

55.7%

Python

43.7%