Skip to main content
Glama

🍝 Renderoni

3D-Webspiele, al dente serviert.
Eine voll ausgestattete, agenten-native 3D-Engine für Three.js und Rapier.
Deterministische WebAssembly-Physik, deklarative Voreinstellungen und integriertes Model Context Protocol (MCP) für KI-Paarprogrammierung.

CI Deploy Pages License: MIT TypeScript MCP


⚡ Das Problem & Die Lösung

Das Erstellen von 3D-Spielen mit Three.js und Rapier WebAssembly bedeutet normalerweise, tausende Zeilen Boilerplate-Code zu schreiben: feste Zeitschritt-Schleifen, Transformationsinterpolation, Charakter-Controller, räumliches Audio, Partikelsysteme und UI-Projektionen.

Gleichzeitig haben KI-Code-Agenten (Claude, Gemini, Cursor) Schwierigkeiten mit 3D-Engines, da Spielschleifen nicht-deterministische Blackboxen sind, die teure Bildschirmfotos erfordern.

Renderoni bietet Ihnen beides:

  • Für Menschen: Eine deklarative, voll ausgestattete 3D-Engine. Ein einziger createRenderoni()-Aufruf startet Physik, Rendering, Kamerasteuerung, räumliches Audio, Animationszustandsmaschinen und Partikelsysteme mit typisierten Voreinstellungen.

  • Für KI-Agenten & Headless-CI: Ein deterministischer Simulationskern mit einem integrierten Model Context Protocol (MCP)-Server. Agenten inspizieren Szenen mittels leichtem semantischen Markdown (<500 Bytes / ~120 Tokens), senden typisierte Aktionen und überprüfen den Spielzustand headless in Node.js in unter 10ms.


Related MCP server: maige-3d-mcp

🎮 Live-Demos

Probieren Sie den interaktiven Spielplatz live in Ihrem Browser aus: elemarin.github.io/renderoni (oder führen Sie lokal npm run dev aus).

Demo

Funktion

Steuerung

🪙 Quickstart Demo

Live interaktive Browser-Implementierung des README-Schnellstarts: Heldenfigur, rotierender Goldmünzen-Sensor, Audio-Klingel und Partikelburst-VFX.

WASD / Pfeiltasten (Held bewegen), Leertaste (Springen), 🪙 Münze neu spawnen-Button

✈️ Flight Simulator

Aerodynamische Flugphysik mit Auftrieb, Widerstand, Start- und Landebahn, einziehbarem Fahrwerk und Ringkurs.

W/S (Nicken), A/D (Gieren), Q/E (Rollen), Umschalt/Strg (Schub), Z/X (Max/Min), G (Fahrwerk), C (Cockpit/Verfolgungsansicht), R (Zurücksetzen)

🧱 Vast Voxel Sandbox

Multi-Biom-prozedurale Welt (~2.000+ Blöcke) mit Ozeanwasser, Sandstränden, sanften Hügeln, schneebedeckten Gipfeln und Bäumen.

WASD (Gehen & Automatischer Schritt), Umschalt (Sprinten), Leertaste (Springen), 1-6 (Schnellzugriffsleiste), Links/Rechts Klick (Zerstören/Platzieren)

🔦 PSX 3rd-Person Horror

Retro-PSX-Survival-Horror mit Third-Person-Verfolgungskamera, gotischem Herrenhaus-Flur, Taschenlampe, Schlüsselrätsel und animiertem Eisentor.

WASD (Detektiv bewegen), Maus (Kamera umkreisen), E (Schlüssel aufnehmen & Tor entriegeln)


📦 Installation

npm install renderoni three @dimforge/rapier3d-compat

Tree-shakable subpath exports:

import { createRenderoni } from 'renderoni';
import { body, kccPlayer, sensor, light } from 'renderoni/presets';
import { audio } from 'renderoni/audio';
import { animation } from 'renderoni/animation';
import { vfx } from 'renderoni/vfx';
import { ui } from 'renderoni/ui';
import { createMCPServer } from 'renderoni/mcp';
import 'renderoni/testing/matchers';

🚀 Quickstart

import { createRenderoni } from 'renderoni';
import { body, kccPlayer, sensor, light } from 'renderoni/presets';
import { audio } from 'renderoni/audio';
import { vfx } from 'renderoni/vfx';

// 1. Initialize engine (runs headlessly in CI or interactively in browser)
const game = await createRenderoni({
  mode: 'interactive', // or 'headless'
  seed: 42,
  subsystems: [
    audio({ volume: 0.8 }),
    vfx({ particles: true }),
  ],
});

// 2. Add Environment & Lighting
game.add(light({ type: 'directional', position: [20, 40, 20] }));
game.add(body({ shape: 'box', type: 'fixed', size: [100, 1, 100], position: [0, 0, 0] }));

// 3. Add Collectible Item
const coin = game.add(sensor({
  id: 'golden_coin',
  shape: 'sphere',
  radius: 0.6,
  position: [4, 1.2, 0],
}));

// 4. Add Player Character
const player = game.add(kccPlayer({
  id: 'hero',
  position: [0, 1.5, 0],
  moveSpeed: 6.5,
}));

// 5. Handle Gameplay Events
game.events.on('sensor.enter', ({ sensor, target }) => {
  if (sensor.id === 'golden_coin' && target.id === 'hero') {
    game.audio.play('coin_pickup');
    game.vfx.spawnParticles({ count: 16, position: [4, 1.2, 0] });
    coin.destroy();
  }
});

// 6. Run headlessly (CI/Tests) or start interactive render loop (Browser)
game.step(60);   // Step 60 fixed ticks in ~1ms (Headless CI)
// game.start(); // Start 60fps presentation loop (Browser)

🤖 KI-Agenten-Integration (MCP-Server)

Verbinden Sie Claude Desktop, Antigravity, Cursor oder einen anderen MCP-Client direkt mit Ihrer Simulation:

{
  "mcpServers": {
    "renderoni": {
      "command": "npx",
      "args": ["renderoni", "mcp"]
    }
  }
}

Integrierte MCP-Tools:

  • describe: Gibt aktive Entitäten, Kollider, Tags und Engine-Schemata zurück.

  • observe: Gibt extrem dichte Tier-0-Markdown-Zusammenfassungen (<500B / ~120 Tokens) mit Positionen, Geschwindigkeiten und Spielzustand zurück.

  • act: Injiziert deterministische semantische Spielaktionen (game.act({ name, payload })).

  • step: Erhöht die Simulation um $N$ feste Ticks und gibt Zustands-Hashes zurück.

  • check: Wertet maschinelle AST-Assertionen aus.


🧪 Headless-Testing mit Vitest

Führen Sie vollständige Spielintegrationstests headless in Node.js in unter 10ms mit benutzerdefinierten Vitest-Matchern aus:

import { expect, test } from 'vitest';
import { createRenderoni } from 'renderoni';
import { kccPlayer, sensor } from 'renderoni/presets';
import 'renderoni/testing/matchers';

test('player collects coin and verifies state hash', async () => {
  const game = await createRenderoni({ mode: 'headless', seed: 42 });
  const hero = game.add(kccPlayer({ id: 'hero', position: [0, 1, 0] }));
  const coin = game.add(sensor({ id: 'coin', position: [3, 1, 0] }));

  hero.actions.move({ x: 1, z: 0 });
  game.step(60);

  expect(game).toHaveTick(60);
  expect(hero.position[0]).toBeGreaterThan(1.5);
  expect(game).toHavePassedDiagnostics();
});

🏛️ Architektur

┌────────────────────────────────────────────────────────────────────────┐
│                              L3 APPLICATION                            │
│           Game Rules, Custom Assets, Levels, Shaders, UI Layouts       │
├────────────────────────────────────────────────────────────────────────┤
│                           L2 TOOLING & AGENTS                          │
│     Built-in MCP Server (stdio/SSE), Vitest Matchers, Live Inspector   │
├────────────────────────────────────────────────────────────────────────┤
│                         L1 BATTERIES & SUBSYSTEMS                      │
│   Spatial Audio • Skeletal Animation • UI Projections • VFX Emitters   │
│   Declarative Presets: body, sensor, light, kccPlayer, dynamicPlayer   │
├────────────────────────────────────────────────────────────────────────┤
│                          L0 DETERMINISTIC KERNEL                       │
│   Integer Tick Clock • Seeded PRNG • Dual-Buffer Transform Pipeline    │
│   Quantized State Hashing (XXH3) • Resource Ownership Tracking         │
├────────────────────────────────────────────────────────────────────────┤
│                             NATIVE ENGINES                             │
│       Three.js (WebGL / WebGPU)   │   @dimforge/rapier3d-compat (WASM) │
└────────────────────────────────────────────────────────────────────────┘

📜 Lizenz

MIT © Esteban Leandro Marín

F
license - not found
-
quality - not tested
B
maintenance

Maintenance

Maintainers
3hResponse time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • A comprehensive Model Context Protocol (MCP) server that enables AI assistants to control Unreal E…

  • A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…

  • Deterministic reasoning stack for AI agents: simulate, decide & compute, plus cross-domain tools.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/elemarin/renderoni'

If you have feedback or need assistance with the MCP directory API, please join our Discord server