Skip to content

Porting Examples and Demos

Jonathan Frank edited this page Mar 19, 2024 · 94 revisions

Games and Game Engines

Name Description Author Submitted Link Source Status/Date
Geogram A library of geometric algorithm and interactive 3D graphics. Emscripten target natively supported by the official version. The GUI is done with ImGUI, a version adapted to Emscripten is bundled in GEOGRAM. Embedded LUA interpreter in GEOCOD ok 2019.05.30
Unity Demos Angry Bots, Tanks (wasm) (older DT2 blogpost) semiok 2019.05.30
Nebula3 The Nebula3 engine cooldnt figure out 2019.05.30
Bullet The Bullet physics engine compiled to JavaScript with convenient automatically-generated bindings (through ammo.js) 404 2019.05.30
Esenthel Engine Live Demo ok 2019.05.30
Quake 3 QuakeJS, a port of ioquake3 page look alive but don't work 2019.05.30
Doom 3 D3wasm, an experimental port of idTech 4 to WebAssembly / WebGL Gabriel Cuvillier Jan. 2019 Online demonstration using Doom 3 Demo - Project Page GitHub repository page look alive but don't work 2019.05.30
Kigs-framework Open Source, free , cross platform, multi purpose fast application development framework Stephane Capo Online coding samples GitHub repository
Doom The open source Freedoom game assets running on PrBoom, which is based on the open source Doom code
UNIGINE Port of the UNIGINE game engine by ACTISKU ok 2019.05.30
Urho3D Free lightweight 2D and 3D framework. Cross-platform support using SDL 2.0 with Emscripten support ok 2020.04.10
BananaBread Port of Sauerbraten/Cube 2. Project page here. ok 2019.05.30
Torque 2D Demo An experimental port of the Torque 2D game engine. Blogpost ok 2019.05.30
Voxel Invaders Blogpost ok 2019.05.30
Dune II Port of OpenDune, an open source implementation of the classic real-time strategy game Dune II "buy this domain" 2019.05.30
Me & My Shadow A 2D SDL platform/puzzle game (original here) ok 2019.05.30
Ceferino Port of a 2D action game (also available here) ok 2019.05.30
SuperTux Port of SuperTux by @forandom page look alive but don't work 2019.05.30
Box2D The Box2D physics engine compiled to JavaScript with convenient automatically-generated bindings (through box2d.js) 404 2019.05.30
Online Freecell solver Port of libfreecell-solver (part of Freecell Solver) to WebAssembly and JavaScript, with some jQuery glue and YUI-based graphics
ScummVM ported to HTML5 Demos of Monkey Island 1, Sam & Max, Day of the Tentacle, Indiana Jones and other LucasArts classics in your web browser! server not found 2019.05.30
drahtkern tech demo A cross-platform 3D engine techdemo developed by MADE 404 2019.05.30
Open Syobon Action A parody of Super Mario. Original here. ok 2019.05.30
Randomedia Game An endless game with aliens and sheeps. Source code on Github. ok 2019.05.30
Minko Engine A free and open source 3D engine for HTML5, iOS, Android, Windows, Mac and Linux. other site 2019.05.30
Minko - Sponza The famous Sponza 3D model rendered with the Minko Engine. other site 2019.05.30
Minko - Venus de Milo A 3D scan of the Venus de Milo rendered with the Minko Engine. other site 2019.05.30
Recast.js - Port of Recast navigation mesh library ok 2019.05.30
Oxygine A free and open source 2D game framework for HTML5, iOS, Android, Windows, Mac and Linux. ok 2019.05.30
Duck Dynasty Slots A web version of Duck Dynasty Slots which was previously a mobile-only game. Blogpost 404 2019.05.30
CaveExpress and CavePacker Free and open source 2D games (SDL2). https://github.com/mgerhardy/caveexpress ok 2019.05.30
GDevApp Webapp to create 2D games without programming. Based on open source GDevelop project, ported to JS with Emscripten. ok 2019.05.30
EasyRPG Player HTML5 port Port of the EasyRPG Player RPG Maker 2000/2003 games interpreter. ok 2019.05.30
BrowserHack Port of NetHack. ok 2019.05.30
Simon Tatham's Puzzles ok 2019.05.30
amazeballz pool Free 3D pool game you can play in your browser. Created using Ragtag's C++ interactive software engine, theRedEngine, compiled to JS/HTML5 using Emscripten. Ragtag Developments Ltd 02/04/2016 Game Information/Homepage ok 2019.05.30
raylib A simple and easy-to-use library to learn videogames programming. Check online examples. @raysan5 6-Aug-2016 www.raylib.com https://github.com/raysan5/raylib ok 2019.05.30
DIV DIV Games Studio, a full cross platform games development IDE + Compiler @MikeDX 19-Nov-2016 www.div-arena.co.uk https://github.com/DIVGAMES/DIV-Games-Studio ok 2019.05.30
Pong Another version of the famous oldie! @Jackbenfu 08-Nov-2017 jackbenfu.itch.io/pong https://github.com/Jackbenfu/Pong ok 2019.05.30
Open Fodder Port of Cannon Fodder @segrax 10-March-2019 Cannon Fodder Demos https://github.com/OpenFodder/openfodder ok 2019.05.30
Stockfish.wasm WebAssembly port of the strong chess engine Stockfish 29-May-2019 Live demo Github ok 2019.05.30
Pyramid Solitaire Ancient Egypt Web version of Pyramid Solitaire Ancient Egypt which was previously only available as app
RaZ Modern & multiplatform C++ game engine Razakhel 2022 Nov. 23 Online demo - Rendering
Online demo - Atmospheric simulation
Online demo - Terrain generation
https://github.com/Razakhel/RaZ

Graphics

Name Description Author Submitted Link Source
IMGUI OpenGL GUI
Microwindows/Nano-X A library for X11 and limited WinAPI support GitHub C code
MeshLabJS Pure client side version of the open source mesh processing system MeshLab
Autodesk FormIt 3D conceptual design application
OpenGL ES 2.0 Gears OpenGL ES 2.0 rendering compiled to WebGL
Rawson.js An experimental Camera RAW viewer in Javascript, based on an emscripten port of dcraw.c
dcraw.js Simple port of dcraw.c into a JavaScript Library
Crunch DXT1 Texture Compression Using Crunch to compress DXT1 textures for use in browsers supporting compressed textures. Online demo page using library.
Topologic Simple viewer for higher-dimensional geometric primitives and fractals.
Verovio A library for engraving MEI music notation into SVG

Emulators

Name Description Author Submitted Link Source
JSMESS JavaScript port of the MESS emulator
Classic Mac OS Mac Plus emulator using PCE
Moonjs Simulator for the Apollo Guidance Computer (AGC) used in the Apollo Program's lunar missions
JS-VBA-M Port of VBA-M by ILOVEPIE
VICE.js Versatile Commodore Emulator for JavaScript
Chiptunes Forever HTML5/WebAudio versions of various popular chiptune players: AdPlug, Sc68, Tiny'R'Sid, UADE, XMP, ZXTune https://github.com/wothke
qemu.js Work in progress. Includes some implementation of machine-code-to-JS translator https://github.com/atrosinenko/qemujs
em-dosbox An Emscripten port of DOSBox 29-May-2019 Github
js-dos The simpliest API to run DOS games in browser. caiiiycuk Github

Application Frameworks

Name Description Author Submitted Link Source
Blazor Client web UI framework based on .NET and WebAssembly
pepper.js Ports of miscellaneous PNaCl apps (earth, voronoi, bullet, etc.)
Qt Ports of various Qt demos
Clarity Clarity Web Framework Greg Propf 2022-11-21 https://github.com/gpropf/clarity

Programming Languages

Name Description Author Submitted Link Source
C/C++ Clang and LLVM
C#/F#/VB .NET execution runtime for WebAssembly
Lua The Lua VM, ported in lua.vm.js
Dao Port of the Dao language
mruby Port of mruby, a lightweight implementation of the Ruby language
Python, Ruby, Lua The popular dynamic languages Python, Ruby and Lua, compiled to JavaScript (Older Python demo )
Perl Port of (micro)perl-5.30.x
pypy.js JIT Python Interpretor Ryan Kelly github Homepage
JavaScript The JavaScript engine of WebKit mbbill
Nix Nix in javascript for teaching programming in the Nix language qknight https://nixcloud.io/tour https://lastlog.de/blog/posts/tour_of_nix.html
Otus Lisp The Otus Lisp (functional Scheme dialect) VM, ported in WebAssembly

Tutorials

Name Description Author Submitted Link Source
Developing a Simple Game of Air Hockey Using C and OpenGL ES 2 for Android, iOS, and the Web This is a set of tutorials that takes a look at a very simple game developed for Android and ports it to the web by using emscripten.

WIP

Name Description Author Submitted Link Source
Cocos2D-X
Rogue.JS

Utilities

Name Description Author Submitted Link Source
essentia.js JavaScript library for extensive Music and Audio Analysis Albin Correya https://github.com/MTG/essentia.js
openFrameworks openFrameworks ported via Emscripten
Vim.js Vi IMproved
GnuPG The GNU Privacy Guard suite
OpenSCAD Solid 3D CAD Modeller
bardecode ExactImage's barcode scanner
LaTeX and BibTeX Ports of TeX Live's pdflatex and bibtex tools (using texlive.js)
ctags Port of ctags
gnuplot Port of gnuplot
LLVM IR Compile and run LLVM IR in JS, using compiled parts of LLVM + emscripten
Graphviz Graph visualization software (port is here)
PNG Crush PNG optimizer in a web page
XML schema validation XML validation in pure JS using compiled libxml
hpdf.js Create PDF files in pure JS using compiled libharu
SQLite SQLite compiled to JavaScript with an easy-to-use API (through sql.js)
Text-to-Speech eSpeak, a speech synthesizer, compiled to JavaScript.
Poppler PDF rendering in JavaScript, using Poppler and FreeType. Warning: Very large (>12MB) download.
FreeType TrueType font rendering in JavaScript, using FreeType
Pocketsphinx.js Speech recognition in JavaScript, using PocketSphinx and the Web Audio API
Phonetisaurus Port of grapheme-to-phoneme (g2p) engine phonetisaurus used to create dictionaries for pocketsphinx, to javascript
ogg.js libogg, libvorbis, and libopus compiled to JavaScript for Aurora.js
MiniSat Port of the MiniSat SAT solver
Boolector Port of the Boolector SMT solver
videoconverter.js A port of the FFmpeg video utilities
audioconverter.js The FFmpeg port with lame, vorbis and fdk-aac libraries for audio transcoding
ffmpeg.js Another port of the FFmpeg intended for WebM encoding
PDCurses Port of PDCurses
astyle.js Port of Artistic Style sass.js Port of libsass
epanet.js Hydraulic analysis of water supply networks
TinyGL.js Implementation of a subset of OpenGL 1.1 compatible API in JavaScript
PDFium.js Render PDF using PDFium in JavaScript
aalib.js Port of aalib
bb.js Port of bb, the demo of aalib
aaWebCam Render webcam using aalib
typespeed.js Port of typespeed
glpk.js (partial) Port of GLPK (GNU Linear Programming Kit)
lmfit.js Port of lmfit, a curve fitting library
y4m.js Wrapper of MJPEG Tools, to support decoding of Y4M files
LaTeX Base Web-based LaTeX editor that uses a LaTeX compiler built with Emscripten lambdabaa 06/29/16 Link
spatiasql.js Port of SpatiaLite, a spatial DBMS
tesseract.js Port of Tesseract, an OCR engine antimatter15 http://tesseract.projectnaptha.com/
ccv.js Partial port of CCV, a computer vision library
WASM-ImageMagick ImageMagick ported via Emscripten, image transformation and manipulation KnicKnic 2018-09-20 https://knicknic.github.io/imagemagick/ https://github.com/KnicKnic/WASM-ImageMagick
quantlib-wasm A wrapper of the quantitative finance library Quantlib Captor AB 2019-08-21 NPM GitHub
node-seal A port of Microsoft SEAL's homomorphic encryption library to WebAssembly Morfix.io s0l0ist 2019-05-26 NPM GitHub
wasm-vips libvips for the browser and Node.js, compiled to WebAssembly with Emscripten kleisauke 2020-09-01 NPM GitHub

Other Examples

Name Description Author Submitted Link Source
zopfli.js Zopfli, slow but smaller zlib/gzip compression
zpipe zlib compiled to JS
zee.js Another port of zlib to JS (focused on compressing/decompressing of gzip files)
lzma.js LZMA ported to JS
sql.js SQLite ported to JS
libtess2.js libtess2 compiled to JavaScript
Projects using asm.js
WAM DAW style audio plug-ins for the Web Jari Kleimola & Oli Larkin 20-Nov-2017 webaudiomodules.org github
libgit2 Run git inside the browser Youtube demo Peter Salomonsen
xapian/Runbox7 Xapian search index port running in the browser demo video Runbox
pcl.js pcl.js is a Point Cloud Library (PCL) that runs in the browser, powered by Emscripten and WebAssembly. Point Cloud Library (PCL) is a standalone, large scale, open project for 2D/3D image and point cloud processing. Darkce