My entry for JS1k 2019. A 1024 byte rolling demo featuring seven scenes and a byte beat sound track.
An experimental custom element that renders 3D models inline with other HTML elements. Models can be styled using CSS.
A browser extension that disables CSS features, allowing developers to see how their sites behave in older browsers.
CSSVR is an experiment that simulates browser support for creating VR experiences using media queries and CSS transforms.
My winning entry for JS1K 2015 is a frantic 1023 byte scrolling shooter inspired by the iconic arcade game Defender.
A 3D world with lighting, shadows and collision detection created with CSS transforms and HTML.
A pure CSS approach to parallax scrolling websites. Uses 3D transforms and perspective to create the effect.
A browser extension for Chrome and Firefox devtools to debug Google Analytics tracking code while browsing websites.
In September 2013, I spoke at Hacker News London about my 3D CSS experiments and some of the techniques used.
An attempt to create real-time lighting and shadows cast from 3D models created with CSS transforms.
Dynamically shading elements positioned using CSS 3D transforms by decomposing matrices and calculating vertex data.
Fuse is a boilerplate for creating Firefox, Opera and Google Chrome devtools extensions from a single codebase.
A prototype renderer for three.js. Capable of rendering lights, textures and geometry using CSS.
My work is referenced in a number of industry publications, including books and magazines.