GANBATE

GANBATE ENGINE · PROPRIETARY RUST CORE

Pure Rust. Four GPUs. Instant Web & Native.

A zero-dependency 3D graphics, deterministic physics, and 5× compact world-streaming runtime—built in-house so players join instantly and our studio ships everywhere.

Unified RHI · Four GPU Targets

Backend Target Platforms Shader Emission Verification & Telemetry
Vulkan 1.3 Linux (X11/XWayland), Windows (Win32), Android offscreen Direct SPIR-V emission Direct system loader ABI · 41 driver validation tests
Apple Metal macOS (arm64), iOS / iPhone (arm64 & Simulator) Metal Shading Language (MSL) Objective-C runtime direct bind · byte-exact WGSL layouts
WebGPU Chrome / Edge 113+, Safari 26 (macOS, iOS, iPadOS) Standard WGSL + dynamic ring 47–50 dB PSNR parity against native Vulkan
WebGL 2 Universal fallback across phones, Linux & legacy GPUs Lowered GLSL ES 3.00 Automatic std140 & RGBA32UI storage fetch · 49–53 dB PSNR

IN-HOUSE ENGINE · GANBATE ENGINE

Native GPU Fidelity. Instant Browser Reach.

Engineered from scratch in pure Rust so players step into rich 3D venues in seconds—and our studio ships across web, desktop, and mobile from a single codebase.

GANBATE ENGINE 1600×1000 · Skinning + Spotlights Full Resolution ↗
Rei dealing pocket aces showdown in Ganbate on Ganbate Engine

Live Hold’em showdown in Ganbate—GPU-skinned dealer, spotlights, and crisp HUD projection.

Full Engine Deep Dive →

UNIFIED GRAPHICS

One WGSL Shader → Four GPUs

Our custom shader compiler emits SPIR-V, Apple Metal, WebGPU, and WebGL 2 from one source with verified visual parity.

47–53 dB PSNR parity vs. native Vulkan

INSTANT DISTRIBUTION

5× Smaller Worlds for Zero-Install Play

ABEW v4 cooks 694K-triangle venues down to ~7 bytes per triangle so mobile and desktop players join tables in seconds.

≥98% frame cadence at 120 Hz & 240 Hz

DETERMINISTIC 60 HZ

Bit-Exact Physics Across Native & Web

Rigid bodies, joints, and continuous collision produce identical 64-bit state hashes on native GPUs and WebAssembly.

698 automated tests · Hash c9df1e2e6456329b

MODERN PIPELINE

Text-First Scenes & Zero Binary Lock-In

Canonical JSON scenes, semantic CLI diffs, and headless GPU renders accelerate engineering and AI-assisted content creation.

Zero external crates · 100% Git-diffable

Six-Layer Proprietary Engine Stack

Zero external runtime crates · Sustained 60 / 120 / 240 Hz pacing across devices

LAYER 01 Live

Zero-Dep Platform Core

Direct X11, Win32, Metal, and Canvas hosts with zero external crates.

LAYER 02 ABEW v4

Declarative World Format

Canonical JSON hierarchies cooked down to ~7 B/triangle for instant web play.

LAYER 03 Live

4-Target Renderer

Single-source WGSL compiled across Vulkan, Metal, WebGPU, and WebGL 2.

LAYER 04 60 Hz

Deterministic Physics

Bit-exact rigid bodies, joints, GPU skinning, and sparse facial morphs.

LAYER 05 Live

Multiplayer Stage Runtime

3D-to-HUD anchors, triangle picking, and authoritative server snapshots.

LAYER 06 50/50 E2E

Studio & Build Tooling

Atomic JSON scene ops, undo journal, visual diffs, and frame-rate gates.

UNDER THE HOOD

Real Code From Our Production Monorepo.

Clean TypeScript/WASM APIs, cross-compiled WGSL shaders, zero-crate Rust physics, and scriptable scene pipelines.

game-stage.ts WebGPU · WebGL 2 · 0 npm deps

Boot a cooked 3D venue in the browser, drive dynamic time-of-day lighting, and project 3D table anchors onto crisp HUD coordinates.

import { createEngine } from '@ganbate/engine-web';

const engine = await createEngine({
  canvas,
  wasm: '/engine/ganbate_web.wasm',
  world: '/worlds/yozakura-v5-live.abew', // 627 entities · 617 lights
  look: yozakuraLookV5,
});

engine.fitCanvas();
engine.setView({
  eye: [0, 2.15, 3.25],
  target: [0, 0.78, 0],
  fov: 44,
  focus: { distance: 3.4, depth: 4.5, blur: 0.018 },
});
engine.setClock(20.5, performance.now() / 1000);
engine.setWeather('petals');

const tableSpot = engine.createLight({
  kind: 'spot',
  position: [0, 2.6, 0.2],
  direction: [0, -1, -0.08],
  color: [1.0, 0.84, 0.62],
  intensity: 16.0,
  shadow: 0.85,
});

engine.render();
const hudAnchor = engine.project([0, 0.92, 0]);
const hitProp = engine.pick(pointerX, pointerY);

PLAY GANBATE LIVE

Host Your Next Poker Night on Ganbate.

Instant social poker, Blackjack, and Baccarat on desktop and mobile—no download needed.

18+ · Fictional play chips only. No cash-out or real-money prizes.