
AURAJS
FEATURES
2D + 3D built in
One runtime, both pipelines. Build 2D and 3D games in JavaScript with native rendering across macOS, Linux, and Windows.
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.
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.
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.
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.
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.
KB-sized patches
Updates swap the JS bundle, not the binary. Game updates go from hundreds of megabytes to kilobytes. Push fixes in seconds.
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.
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.
Zero config builds
No cmake, no webpack, no build system. aura build outputs a native binary. No toolchain, no SDK, no Rust installation required.
AURAJS VS ALTERNATIVES
| Metric | AuraJS | Unity | C / C++ | Electron |
|---|---|---|---|---|
| Hot reload | <1s | 5-30s | recompile | <1s |
| Min binary size | ~2 MB | ~80 MB | ~1 MB | ~150 MB |
| GPU access | native | native | native | WebGL |
| Developer pool | 20M+ | 5M | 3M | 20M+ |
| AI code gen quality | excellent | decent | poor | decent |
| Multiplayer | sync JSON | Netcode | custom | sync JSON |
| Modding | native | framework | Lua/etc | native |
| Patch size | KBs | MBs-GBs | full binary | KBs |
| Platform APIs | built in | - | - | - |
| Vendor lock-in | none | heavy | none | Chromium |
| Build config | zero | editor | cmake | webpack |
THIS IS A COMPLETE GAME
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
})
}# install
npm install -g auramaxx
# create
auramaxx create my-game && cd my-game
# run
npm run devOpen-source game engine for vibecoding. Play from your terminal. Write once, compile everywhere.
PUBLISH AND PLAY FROM YOUR TERMINAL.
npx auramaxx