AuraJS

AURAJS

OPEN-SOURCE GAME ENGINE FOR VIBECODING
GITHUBDOCS
01

OPEN-SOURCE GAME ENGINE FOR VIBECODING.
PUBLISH AND PLAY FROM YOUR TERMINAL.

CORE PREMISE

Publish and play directly from your terminal.

Write one JavaScript game and build native binaries for macOS, Linux, and Windows.

npx auramaxx play <mygame>
02

FEATURES

01

2D + 3D built in

One runtime, both pipelines. Build 2D and 3D games in JavaScript with native rendering across macOS, Linux, and Windows.

02

Sub-second hot reload

Save your file, game restarts instantly. No compile step, no domain reload. Unity takes 5-30 seconds per change. AuraJS takes less than one.

03

Native GPU rendering

wgpu talks directly to Vulkan, Metal, and DirectX 12. No browser, no ANGLE translation, no compositor. Real draw calls to real drivers.

04

2MB binaries

An empty Unity game ships at 50-100MB. AuraJS ships at the size of your assets plus a ~5MB runtime. Games download in seconds.

05

State is JSON

Game state is plain JS objects. Save games, multiplayer sync, replays, spectating, and modding are trivial because your data is already serializable.

06

AI-native API

Flat global API, no class hierarchies, no imports. Agent skills are provided in the description so an AI agent can keep the full API in context and generate a complete working app in one prompt.

07

KB-sized patches

Updates swap the JS bundle, not the binary. Game updates go from hundreds of megabytes to kilobytes. Push fixes in seconds.

08

Mods are free

The game is JS. Mods are JS. Users write mods in the same language the game is written in. No Lua bridge, no plugin framework. It just works.

09

Multiplayer is sync JSON

State is already plain objects. Multiplayer is sending those objects. No Netcode framework, no Mirror, no RPC system. Sync your state, done.

10

Zero config builds

No cmake, no webpack, no build system. aura build outputs a native binary. No toolchain, no SDK, no Rust installation required.

03

AURAJS VS ALTERNATIVES

MetricAuraJSUnityC / C++Electron
Hot reload<1s5-30srecompile<1s
Min binary size~2 MB~80 MB~1 MB~150 MB
GPU accessnativenativenativeWebGL
Developer pool20M+5M3M20M+
AI code gen qualityexcellentdecentpoordecent
Multiplayersync JSONNetcodecustomsync JSON
ModdingnativeframeworkLua/etcnative
Patch sizeKBsMBs-GBsfull binaryKBs
Platform APIsbuilt in---
Vendor lock-innoneheavynoneChromium
Build configzeroeditorcmakewebpack
04

THIS IS A COMPLETE GAME

main.js
let x = 400, y = 300, speed = 200

aura.setup = async function () {
  await aura.assets.load(["player.png", "coin.wav"])
}

aura.update = function (dt) {
  if (aura.input.isDown("arrowright")) x += speed * dt
  if (aura.input.isDown("arrowleft"))  x -= speed * dt
  if (aura.input.isDown("arrowup"))    y -= speed * dt
  if (aura.input.isDown("arrowdown"))  y += speed * dt
}

aura.draw = function () {
  aura.draw2d.clear(20, 20, 30)
  aura.draw2d.image(aura.assets.image("player.png"), x, y)
  aura.draw2d.text(`Position: ${x}, ${y}`, 10, 10, {
    color: aura.colors.white, size: 16
  })
}
GET STARTED
# install
npm install -g auramaxx

# create
auramaxx create my-game && cd my-game

# run
npm run dev

Open-source game engine for vibecoding. Play from your terminal. Write once, compile everywhere.

PUBLISH AND PLAY FROM YOUR TERMINAL.

npx auramaxx
/
MIT
$npm install -g auramaxx