Developers

An engine you can open up.

Everything the editor makes is a web page running DiscoVR Core. You can write the same pages by hand, add your own components, or let an AI assistant drive the editor.

Core: one tag

The <discovr> tag sets up the scene: environment, player, multiplayer, audio, interface. Each attribute is a group of settings.

<script type="module"
  src="https://core.discovr-engine.eu/discovr-core.js"></script>

<discovr
  environment="preset:forest"
  network="enable:true;roomName:demo">
</discovr>

Core: the JavaScript class

The DiscoVR class places objects and models from code, once the scene is ready.

// whenSceneReady(): the helper from the docs
whenSceneReady(() => {
  const discovr = new DiscoVR();
  discovr.addAsset("car", "models/car.glb");
  discovr.addModel("car", { position: "0 0 -3" });
});

The message bus

Objects talk through topics: a click publishes, another object listens. Scripts and outside systems use the same bus.

DiscoVR.bus.on("door:open", (payload) => {
  console.log("opened by", payload.who);
});
DiscoVR.bus.emit("door:open", { who: "visitor" });

AI assistants through MCP

Create a personal token in the editor and connect Claude Code or another MCP client: it can create projects, add objects and behaviours, write scripts and publish.

claude mcp add --transport http discovr \
  https://editor.discovr-engine.eu/api/mcp \
  --header "Authorization: Bearer dvr_..."

Documentation

The documentation is in English, as Markdown files served by Core.

Inside the editor

  • Script files (modules or classic scripts) loaded with every page
  • A library of tested snippets: interaction, animation, audio, the message bus
  • An AI assistant for scripts that runs with your own Anthropic key, from your browser
  • A REST API with personal tokens, the same operations the MCP server uses