High-performance WebGL-based 3D engine
JavaScript HTML Other
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.



Highly optimized, robust, lightweight 3D engine for JavaScript.

Medea has a stable, declarative and consistent API with nonzero testing coverage. It enables productive WebGl development and strives to meet high requirements in terms of performance and robustness. It is also blazingly fast.

Design Goals

  • Fast: The framework internally optimizes rendering as to maximize Gl performance.
  • A content pipeline for distributing 3D content on the web. 3D data from authoring tools is converted offline to an optimized representation. assimp2json imports geometry from 40+ 3D formats.
  • Exact and transparent resource management to avoid exhausting browser memory.
  • Library tools for managing Level of Detail to easily scale a wide range of devices, including Mobile/Tablets.
  • Automatic Scene Management and Visibility Detection.
Crytek's Sponza Test Scene with dynamic lighting without shadows with medea debug tools enabled.

A fully-zoomable planet demo, drawn with medea in less than 500 lines of code.

Getting started

  • Clone this repo
  • Run testserver.py to start a local dev web server
  • Navigate your browser to http://localhost/samples to see live samples


Medea's API structure is very similar to that of other, non-browser-based 3D engines. Documentation will soon be available; for now, have a look at the samples.


The compile.py script is used to compile all medea modules needed by an application into a single file. It optionally embeds text resources such as shaders into the compiled package as well. The resulting files can then be minified using standard JS minifiers (Google Closure Compiler is recommended).

An average medea distribution is only about 120 KiB.


Medea is licensed under a 3-clause BSD-style license. This means, in short and non-lawyerish, you are free to use medea even in your commercial websites provided the copyright notice, conditions and disclaimer of the license are included.

See the LICENSE file for the full wording.


Are very welcome! Fork it on Github, and do a pull request against the main repository.