Open Source · WebGL · JavaScript

2D Game Engine for the Web

Emerald is a comprehensive 2D graphics engine that makes building web games faster, simpler, and more enjoyable - with a clean API, built-in physics, particles, lighting, and more.

npx create-emerald-app@latest my-app

Everything you need

A full-featured engine that handles the hard parts so you can focus on your game.

Composable GameObjects

Build scenes from GameObjects and components — textures, shapes, animators, rigid bodies, custom Behaviours — with a transform hierarchy and layer/z sorting.

Physics & fixed timestep

Planck.js under the hood: rigid bodies, box/circle colliders, collision layers, continuous detection, raycasts, and a fixed-timestep loop for stable simulation.

Post-processing & materials

Bloom and a chainable post-processing pipeline, plus custom GLSL Materials for per-object shader effects — plus pooled particles and 2D lighting.

Batched, seam-free rendering

Instanced tilemaps and sprite batching keep draw calls low, with half-texel UV insets and pixel-snapped cameras for crisp, seam-free pixel art.

Audio buses, saves & input

Mix buses with fades and crossfades, versioned Storage + IndexedDB saves via EmeraldDB, and unified keyboard, mouse, touch & full gamepad input.

Production-hardened

GPU resource disposal, WebGL context-loss recovery, render-stats profiling, resolution independence, and auto-pause — the parts that separate a demo from a product.

Ready to build?

Spin up your first Emerald project in seconds and start building your game today.

Read the docs

Emerald

A comprehensive 2D graphics engine built to make game development faster, simpler, and more enjoyable. Powered by WebGL.

Resources

Community

Connect with Me

About Me

Github
  • My name is Vahan and I am
  • • A Full-Stack Developer and Software Engineer with 7+ years of experience
  • • Currently exploring Computer Graphics and Game Dev
  • • LMU Graduate with a Bachelor's in Computer Science

MIT License © 2026 Vahan Gevorgyan

Built with WebGL & JavaScript