The First Autonomous Rover Platform for Extreme Exoplanet Mining
Code locally, deploy globally. Conquer the Red Planet with ObjectScript.
Explorating exoplanets like M-U5K-3T is impossible with direct control due to extreme light-speed latency. By the time you send a "Turn Left" command, your rover has already fallen into a crater.
M-U5K-3T changes the game.
It is a gamified simulation platform that challenges developers to write autonomous logic using InterSystems ObjectScript.
- ✅ Code autonomously: Write the
OnTicklogic that controls the rover's brain. - ✅ Simulate safely: Test in the "Danger Room" (Client-side Simulation) with instant feedback.
- ✅ Deploy to Orbit: Upload your code to the server to run on the actual map (Server-side Execution).
- ✅ Visual Feedback: Watch your rover explore, mine, and survive in high-fidelity 3D.
Watch the Twin World Engine in action — syncing local simulation logic with server-side ObjectScript execution:
Click to watch the full mission replay.
M-U5K-3T utilizes a Twin World Architecture to ensure the simulation matches the server execution perfectly.
-
InterSystems IRIS Data Platform
- Stores mission maps, user profiles, and leaderboards.
- Executes the user's ObjectScript code in a secure Sandbox environment.
- Generates the authoritative "Timeline" of the mission.
-
Frontend Simulation (The Danger Room)
- A mirror of the server logic written in JavaScript.
- Allows developers to test their algorithms in real-time without latency.
- Powered by a custom Transpiler/Parser.
-
3D Visualization Engine
- Three.js powered rendering.
- GLTF Assets: Uses high-fidelity models (
dropship.gltf,lander_base.gltf). - Atmospheric Effects: Dynamic fog and lighting to simulate the Martian environment.
┌─────────────────────────────────────────────────────────────┐
│ User (Mission Control) │
└─────────────────────────┬───────────────────────────────────┘
│ Writes ObjectScript
▼
┌─────────────────────────────────────────────────────────────┐
│ Frontend (The Danger Room) │
│ - Mock Simulation (Instant Feedback) │
│ - Three.js Renderer (Preview Mode) │
└─────────────────────────┬───────────────────────────────────┘
│ DEPLOY (POST /api/deploy)
▼
┌─────────────────────────────────────────────────────────────┐
│ InterSystems IRIS (Server) │
│ - Sandbox.CompileUserCode() │
│ - Mission.Run() -> Generates JSON Timeline │
└─────────────────────────┬───────────────────────────────────┘
│ Returns Timeline & Map Data
▼
┌─────────────────────────────────────────────────────────────┐
│ Mission Renderer (Orbit View) │
│ - Replays the server timeline step-by-step │
│ - Validates score and fuel consumption │
└─────────────────────────────────────────────────────────────┘
- Docker and Docker Compose
- InterSystems IRIS (Community Edition or Health)
- Modern Browser (Chrome/Firefox) for WebGL support
git clone [https://github.com/musketeers-br/M-U5K-3T](https://github.com/musketeers-br/M-U5K-3T)
cd m-u5k-3t
docker-compose up -d --build
Open your browser at: 🌐 http://localhost:52773/m5k3t/index.html
Sensors indicate obstacles and minerals. Your goal is to collect minerals (Blue/Gold Crystals) and return to base (optional for some missions) without running out of Fuel or HP.
Write ObjectScript in the embedded terminal. You have access to the context object.
ClassMethod OnTick(context As %DynamicObject)
{
// 1. Get Sensor Data
Set sensors = context.rover.sensors
Set front = sensors.front ; "CLEAR", "OBSTACLE", "MINERAL"
// 2. Decide Action (Move, Turn, Collect)
If (front = "MINERAL") {
Do context.Move() ; Auto-collects when stepping on it
} ElseIf (front = "OBSTACLE") {
Do context.Turn("east")
} Else {
Do context.Move()
}
}
- Click EXECUTE TEST to run in the Simulation (Danger Room).
- Click DEPLOY TO ORBIT to send your code to the server.
- Watch the replay. If successful, the next mission unlocks!
m-u5k-3t/
├── src/
│ ├── dc/
│ │ └── mu5k3t/
│ │ ├── engine/ # Game Logic (Server Side)
│ │ │ ├── Sandbox.cls # Secure Code Execution
│ │ │ ├── Game.cls # Physics & Rules
│ │ └── api/ # REST API
├── frontend/
│ ├── index.html # Main UI
│ ├── main.js # App Logic & State Machine
│ ├── simulation.js # Client-side Physics Engine
│ ├── MissionRenderer.js # Three.js Visualization Class
│ └── assets/ # 3D Models (GLTF) & Textures
├── docker-compose.yml
└── README.md
- Basic Movement & Physics
- ObjectScript Transpiler/Executor
- 3D Renderer with Three.js
- "Twin World" Sync (Client/Server)
- Asset Pipeline (GLTF Loader)
M-U5K-3T is developed with 💜 by the Musketeers Team:
This project is licensed under the MIT License.


