Getting started

Janus Studio in five minutes

Janus Studio is 17 game-making tools in one browser tab. There is nothing to install and no signup to start: every visitor gets 100 free credits. Browser tools such as Pixel Snap, Chroma Key and SFX Lab are free and unlimited; AI tools spend credits, and the price is always on the button before you click.

  1. 1Open Janus Studio and pick a tool, or type an idea into the prompt on the home page.
  2. 2Make something. Every result is saved to My Library automatically, with its provenance record.
  3. 3Use Send to… on any result to hand it to another tool: an Image Forge character can go straight into Background Remover, Sprite Forge or Voxel Forge.
  4. 4Sign up free when you're ready. Your guest library and credits move to your account, plus 200 bonus credits.
Credits never expire, failed generations are refunded automatically, and you own everything you make, including for commercial use. See pricing.
Guide

Game Genie: one sentence to a playable game

Game Genie writes a complete, playable browser game from a description and keeps iterating with you in chat. A build costs 5 credits on Fast or 20 on Pro.

Write a prompt that plays well

Great prompts name four things: the genre, what the player controls, the goal, and one twist.

prompt
A top-down arcade game where you steer a tiny lighthouse beam to guide boats home.
Arrow keys rotate the beam; boats in the light speed up.
Score a point per boat docked; three crashes ends the run.
Twist: fog rolls in every 30 seconds and shrinks the beam.

Pick a runtime

phaser is the default and best for 2D arcade and platformers, three for 3D scenes, and canvas for tiny, dependency-free games.

Iterate, add your assets, publish

  1. 1Ask for changes in plain English: “make the boats faster after level 3”, “add a start screen”. Each turn rebuilds the game.
  2. 2Attach sprites, backgrounds and sounds from your library; Game Genie wires them in with the role you give them (player, enemy, background, music).
  3. 3Publish to the Arcade with a title and cover (free account required), or download the single-file HTML and host it anywhere.
Guide

The sprite pipeline

Go from a character idea to an engine-ready animated atlas. Each step hands its result to the next with Send to…

  1. 1Image Forge: describe your character and choose the Game sprite (green screen) style. Sprites come back on flat #00FF00 so they cut cleanly.
  2. 2Chroma Key (free) or Background Remover: remove the key color for real alpha with despill.
  3. 3Sprite Forge: generate idle, walk, run and attack frames on a consistent grid, auto-keyed and pixel-snapped.
  4. 4Pixel Snap (free): lock frames to a true pixel grid and a palette such as PICO-8, NES or Endesga 32.
  5. 5Sprite Slicer and Atlas Packer (free): preview the animation, tag clips, then pack an atlas with edge extrusion for your engine.
Going 3D? Send any sprite to Voxel Forge for a GLB or MagicaVoxel model, or render a 3D model back into an 8-direction sheet with 3D → 2D.
Guide

Exporting to Bevy, Phaser and Godot

Atlas Packer writes a packed PNG plus an engine-specific sidecar. Atlases are uniform grids, un-rotated and edge-extruded, so they load with each engine's standard API.

Bevy

The Bevy sidecar records tile_size, columns, rows and padding, matching TextureAtlasLayout::from_grid exactly.

main.rs
fn spawn_hero(
    mut commands: Commands,
    assets: Res<AssetServer>,
    mut layouts: ResMut<Assets<TextureAtlasLayout>>,
) {
    let texture = assets.load("hero.png");
    // values from hero.atlas.json: tile_size, columns, rows, padding
    let grid = TextureAtlasLayout::from_grid(UVec2::new(64, 64), 8, 1, None, None);
    let layout = layouts.add(grid);
    commands.spawn(Sprite::from_atlas_image(texture, TextureAtlas { layout, index: 0 }));
}

Phaser 3

scene.js
// preload()
this.load.atlas('hero', 'hero.png', 'hero.json');

// create()
this.anims.create({
  key: 'walk',
  frames: this.anims.generateFrameNames('hero'),
  frameRate: 12,
  repeat: -1,
});
this.add.sprite(400, 300, 'hero').play('walk');

Godot 4

Godot exports are a ready-made SpriteFrames resource. Put the PNG and the .tres in your project, then assign it to an AnimatedSprite2D.

hero.gd
extends AnimatedSprite2D

func _ready():
    sprite_frames = load("res://hero_frames.tres")
    play("walk")

Other formats: Voxel Forge exports GLB and .vox, SFX Lab, Voice Studio and Music Studio export WAV or MP3, and Game Genie games download as a single HTML file.

Reference

API & MCP

Every metered tool is available over REST at /api/v1 and as an MCP server at /api/mcp, authenticated with a personal API key. Calls spend the same credits, carry the same provenance and land in the same library as the Studio.

terminal
# Claude Code
claude mcp add --transport http janus https://janusengine.com/api/mcp \
  --header "Authorization: Bearer $JANUS_API_KEY"
Concepts

Janus Engine overview

Janus is an AI-native engine written in Rust on Bevy. Its governing rule is one sentence: the ECS is canonical reality; all AI is influence that must be validated before it commits.

  • Semantic Action Compiler: the single gateway every intent passes through: seven fixed stages, audit written before commit.
  • Cognition Tier Scheduler: decides when each character thinks and on which model, from local heuristics to frontier cloud models.
  • NPC memory: working, episodic and long-term memory per character, with provenance and poisoning-resistant consolidation.
  • The Director: a constrained narrative agent with seven allow-listed intents; it can never touch player state.
  • Generative content pipeline: the same orchestration that powers Janus Studio, producing content that fits engine data contracts.
  • Identity Anchor + audit: optional verified player identity and a signed, append-only log of every authority-bearing AI decision.