Play the beloved board game online with a fully interactive 3D Mars.
Real-time multiplayer. 450+ cards. Six expansions. One red planet.
Original soundtrack by Lucas -- thank you for scoring the red planet.
Disclaimer -- This is a fan-made, open-source project and is not affiliated with FryxGames, Asmodee Digital, or Steam. If you enjoy this, please buy the physical board game -- it's excellent.
Open Mars is a digital board game based on Terraforming Mars, playable in your browser. The Mars surface is rendered as an interactive 3D hex grid -- you rotate, zoom, and place tiles directly on the planet. Games run in real time over WebSockets with no account required.
This is not a simplified clone. It implements the complete rule set across six expansions with hundreds of cards, corporations, milestones, awards, and colonies.
board-placement.webm
3D Interactive Board -- A real-time rendered Mars surface built with Three.js and React Three Fiber. Rotate, zoom, and watch the planet transform as oceans fill, greenery spreads, and cities rise.
card-play.webm
450+ Cards Across 6 Expansions -- Base game, Corporate Era, Prelude, Venus Next, Colonies, and Turmoil. Each card's behavior is fully implemented with triggers, production chains, and conditional effects.
Real-time Multiplayer -- WebSocket-powered sessions with instant state sync. Create a game, share the code, and play. Supports reconnection if you drop -- your game state is preserved.
Sound and Animation -- Asteroid impacts, tile placement effects, animated resource counters, and ambient audio bring the experience to life beyond a static board.
git clone https://github.com/openmars-app/openmars.git
cd openmars
just deps # Install dependencies
just dev # Launch frontend (3000) + backend (3001)Requires Go, Bun, Node 24+ and just.
Open http://localhost:3000, create a game, and invite friends with the game code.
| Layer | Technology |
|---|---|
| Frontend | React, TypeScript, Three.js / R3F, Tailwind CSS |
| Backend | Go, Gorilla WebSocket, Chi router |
| Tooling | Tygo (Go-to-TS codegen), Air (hot reload) |
Contributions are welcome. The codebase is split into a Go backend (backend/) and a React frontend (frontend/), connected by auto-generated TypeScript types.
just test # Run backend tests
just lint # Lint Go + TypeScript
just format # Format everything
just prepare-for-commit # Format, regenerate types and run every CI checkRun just for the full command reference.
MIT -- see LICENSE for details.
Not affiliated with FryxGames or Asmodee Digital.


