isle.pizza Frontend
A custom web frontend for the Emscripten port of isle-portable, allowing LEGO Island to run directly in modern web browsers.
-
Clone the repository:
git clone https://github.com/isledecomp/isle.pizza.git cd isle.pizza -
Install dependencies:
npm install
-
Obtain the game files (
isle.jsandisle.wasm) by building the Emscripten version of isle-portable, then copy them to the project root. -
Set up the LEGO Island game assets:
npm run prepare:assets
This will prompt you for the path to your LEGO Island installation or mounted ISO and create the necessary symlinks. You can also provide the path directly:
npm run prepare:assets -- -p /path/to/your/LEGO
-
Generate the save editor asset bundle (requires game assets from step 4):
npm run generate:save-editor-assets
This extracts animations, sounds, textures, and character icons from the game files into
save-editor.bin, used by the save editor's 3D previews. -
Start the development server:
npm run dev
-
Open the URL shown in the terminal (usually
http://localhost:5173).
| Command | Description |
|---|---|
npm run prepare:assets |
Set up LEGO Island game assets via symlinks |
npm run generate:save-editor-assets |
Extract save editor assets (animations, sounds, textures, icons) into save-editor.bin |
npm run dev |
Start development server with hot reload |
npm run build |
Build for production (outputs to dist/) |
npm run preview |
Preview the production build locally |
isle.pizza/
├── src/
│ ├── App.svelte # Main application component
│ ├── app.css # Global styles
│ ├── stores.js # Svelte stores for state management
│ ├── core/
│ │ ├── formats/ # Binary file parsers/serializers (WDB, save games, animations, textures)
│ │ ├── rendering/ # Three.js renderers (BaseRenderer, VehiclePartRenderer, ActorRenderer, etc.)
│ │ ├── savegame/ # Save game constants, actor data, color tables
│ │ └── ... # Audio, OPFS, service worker, asset loading
│ └── lib/ # UI components and pages (save editor, configure, etc.)
├── public/
│ └── images/ # UI images (menu buttons, tab icons)
├── scripts/ # Build and asset generation scripts
├── src-sw/ # Service worker source
├── index.html # HTML entry point
├── isle.js # Emscripten JS (not in repo, build from isle-portable)
├── isle.wasm # Emscripten WASM (not in repo, build from isle-portable)
├── save-editor.bin # Packed save editor assets: animations, sounds, textures, icons (not in repo, generated)
└── LEGO/ # Game data directory (not in repo)
The isle.js and isle.wasm files are not included in this repository. To obtain them:
- Follow the isle-portable build instructions for the Emscripten target
- Copy the resulting
isle.jsandisle.wasmto this project's root directory
Alternatively, a Docker image that bundles the runtime with this frontend is available.
- Svelte 5 - UI framework
- Three.js - 3D rendering for save editor previews
- Vite - Build tool and dev server
- Workbox - Service worker and offline support
See LICENSE for details.