Mascarpone 🧀
Interactive CLI tool for scaffolding Tiramisu game projects
Named after the Italian cream cheese used in tiramisu, Mascarpone provides a delightful TUI experience for creating new game projects with the Tiramisu game engine.
Installation
gleam add --dev mascarpone
Usage
Run the interactive project creator:
gleam run -m mascarpone
The TUI will guide you through:
- Lustre Integration: Choose whether to include Lustre for UI overlays (menus, HUDs, etc.)
 - Project Template (Optional): Select from:
- 2D Game - Orthographic camera and sprite setup
 - 3D Game - Perspective camera with lighting
 - Physics Demo - Physics-enabled objects
 - Skip - Don’t create template files (for existing projects)
 
 - Desktop Bundle: Set up NW.js for desktop distribution
 
What It Creates
Mascarpone sets up your Tiramisu project with:
- Lustre dev tools installed to 
priv/<project-name>/with bundled Bun runtime gleam.tomlwith all necessary dependencies (tiramisu, vec, lustre_dev_tools, optionally lustre).gitignorefor Gleam projectspackage.jsonandnode_modules/with Three.js and Rapier3D installed via Bun- Main source file with a working game example (if template selected)
 - Lustre dev tools configuration with Three.js and Rapier3D import maps
 - Desktop bundling with NW.js (if selected):
nwjs-sdk/- NW.js SDK for your current platformdist/linux/,dist/windows/,dist/macos/- Platform-specific distributions- Updated 
package.jsonwith NW.js application configuration 
 
Features
- 🎨 Beautiful TUI powered by Shore
 - 🚀 Quick project setup with sensible defaults
 - 🎮 Multiple game templates to start from (optional)
 - 📦 Automatic dependency management via 
gleam add - 🖥️ Desktop bundling with NW.js for cross-platform distribution
 - ⚙️ Configurable options for Lustre UI and Rapier3D physics
 - ♻️ Can be run on existing projects to add NW.js support
 
After Creation
For Web Development
Run the dev server:
gleam run -m lustre/dev start
Then open http://localhost:1234 in your browser to see your game!
For Desktop Development (if NW.js bundling was selected)
- Build your project:
 
gleam run -m lustre/dev build --outdir=<your-desired-folder>
cd your-desired-folder
- Run with NW.js for each distribution:
 
- Windows: 
./nwjs-sdk/nwjs/nw.exe . - Linux: 
./nwjs-sdk/nwjs/nw . - MacOS: 
./nwjs-sdk/nwjs/nwjs.app/Contents/MacOS/nwjs . 
- Distribute your game using the platform-specific builds in 
dist/linux/,dist/windows/, anddist/macos/ 
Using Mascarpone with Existing Projects
⚠️ Important: If you’re adding NW.js support to an existing project, make sure to skip the template selection when prompted. Selecting a template will overwrite your existing game code in src/!
License
MIT