Here is a collection of the work of Mathieu 'P01' Henri, creative coder, demoscener, JavaScript freak and size optimizer extraordinaire acting on the web platform and in Assembler on PC and Atari ST computers.


Back in October 2014, a good friend of mine, showed me IMPOSSIBLE ROAD and half joked that I should do a remake for JS1k the yearly 1kb JavaScript contest happens in Spring. This set my mind on hyperdrive.

JS1k 2015 Invitation

JS1k 2015, the yearly 1kb JavaScript contest, is around the corner and kuvos asked a couple of optimizer extraordinaires to open the show. Hopefully this little invitation will tingle the spider sense of talented developers and code golfers in time for them to submit high quality entries to JS1k 2015.


An itsy bitsy Dragon curve renderer in 121 bytes.


Breaking the 64 bytes fronteer with the famous '10 print maze generator.


Tribute to MINECRAFT, voxel flyby in 252 bytes of HTML5.


An homage to Wolfenstein 3D in 251 bytes of HTML5.


256 bytes JavaScript signed distance field raymarcher using 2D Canvas.

Javascript is jarig

HETE DANS ACTIE, Javascript is jarig!


How to build a 3D City in 256 bytes with Canvas 2D.


The Andes are the world longest mountain range: 7,000 km and 1,022 bytes of JavaScript, making for a nice entry for Assembly 2013.

Hypersonic Mandelbulb

A hasty (invalid) entry for JS1k using webGL+Audio that fits in less that 1k unpacked and standalone.

512b Micro Nova

Quite possibly the smallest WebGL demo effect. Micro Nova clocks under 512bytes and shows supernova-like blasting colors.

128b raytraced checkboard

A checkboard plane raytraced and animated in 128 bytes of JavaScript.

JS1K Speech Synthesizer (updated)

Sorry but I didn't have the time nor felt like doing heavy 3D, FPS game, particle systems, flying hearts and flowers for JS1K#4. This time, Audio was ON and several entries featured a melody and other simple sound effects, so I had to make a Speech Synthesizer in 1K of JavaScript.

140bytes Music SoftSynth

This year has kept people busy crafting little things. It started on May 23, 2011 when Jed Schmidt created the master GIST thus throwing the ball for a tweet-sized, fork-to-play, community-curated collection of JavaScript. Later, on September 26, 2011 Viznut released the Experimental music from very short C programs video on Youtube. Soon people started playing with various formulas and building tools to test them. The time has come for these two projects to make tiny babies. Behold the 140bytes music softSynth in JavaScript!

gl1k Cotton Candy

First stab at webGL, in 1k between two nappy changes. It's glitchy and tiny but I quite like this puppy. It ranked #3 at DemoJS.


The idea of this entry for the JS1K contest was to do the impossible: a 1K remake of the famous WOLF5K that rocked the final edition of the5K. It does not feature guns, evil grins and violence for in WOLF1K there is no room for guns or any form of violence.

3D dots performance test

After experimenting a little with Canvas Image Data in JSpongy and the public release of Opera's new JS engine and the recent release of Firefox 3.6, I was curious to compare the performance of the 4 browsers with JIT on a simple task: rotating many dots in 3D.

512b JSpongy

Since Mentor^TBC released Spongy, an amazing 128b intro raymarching a Menger sponge, I wondered how far such effect could be size optimized in JavaScript while keeping complex camera path.

Favicon games & the Smart fortwo

The German advertisement company Jung von Matt loved the concept of DEFENDER of the favicon, and contacted me to develop two more games. Favicon games were a perfect match for their campaign for the Smart fortwo and they gave me carte blanche.

Tilt-shift photo effect in Canvas

256b mars canvas

Remember the amazing MARS 4Kb intro by Tim Clarke in 1993 ? Here comes a remake in 256b using JavaScript and Canvas

128b mandelbrot

Quite possibly the smallest Mandelbrot tracer ever in JavaScript.

DEFENDER of the favicon

DEFENDER of the favicon is a JavaScript remake of Eugene Jarvis' brilliant arcade game Defender written by Mathieu 'p01' Henri and inspired by Scott Schiller's experiment with generated favicons VU meter. The idea was to push the concept of generated favicons further and pack a thrilling retro shooter in 16×16 pixels using JavaScript, canvas and data: URIs.

20 lines hypno trip down the fractal rug

Take a fractal cookie and enjoy your never ending trip down this stochastic Sierpinski-esque carpet

256b Tunnex : Tunnel + Scroll text effect

The first multi-effect 256b production in JavaScript : a Tunnel & a scroll text

20 lines Twinkle : split screen effect in Canvas

20 lines Castle Wolfenstein

Homage to Wolfenstein 3D™ in 20 lines of JavaScript for the Ozone Asylum, 20 Liners - January 08 - Dynamics DHTML contest.

20 lines dynamic hypnoglow

256b rubber : rubber in solid #

3D Tomb II : The tomb of the 4096 mummies

3D TOMB II is a first person shooter in a fully textured environment done in less than 4KB of JavaScript. It was initially made for the5k 2002. Unfortunately the contest got cancelled so I waited for an opportunity to release it while adding more features and optimizing the game beyond all my expectations.

256b starfield

3D starfield with fog in 256b

Asahikawa : 64b city landscape

I wondered whether it was possible to fit a voxel landscape effect in 64 bytes for almost a year before sitting down and doing it. Turned out to be perfect time as Asahikawa beat another talented coder by a few hours.

256b mandelbrot rotozoom

Neja : JavaScript demo for the Assembly

This is my first full fledged demo in JavaScript. Djamm/Bomb composed the music for which I wrote a tiny ( 376 bytes ) Flash player. Everything else is made in JavaScript, without Canvas. All effects are running in real time and for most of them a 24 bits BMP image is generated on the fly in a data: URI

20 lines copter cruise

A simple Commanche-like game that won the 20lines 'Terrain' contest at the OzoneAsylum.

Drawing lines in JavaScript

An efficient method to draw and animate many lines in JavaScript, without Canvas or any similar graphic API.