This a list of selected projects and experiments. Click on an item to see a description and further links.
Porting a 3D PC RPG to the browser
With WebGL arising, the question was whether we could
actually provide a plugin-free 3D experience in the browser.
To this point, WebGL demos were mostly mere tech-demos – but
what about real content, exploring a world in first person
view? To test this, I ported several levels of a famous triple A
Computer game to the browser.
In 2012, CSS gains the ability to apply GLSL shaders to DOM
nodes. Time to see how far one can go… This experiment uses requestAnimationFrame to dynamically
and fragment shaders via data-URI to a regular DOM node.
Sadly, support for CSS shaders was removed in 2014
due to security concerns.
A 3D shootout game utilizing various bleeding-edge HTML5
This project used to serve as a testing ground for new
HTML5 APIs like GamePad, WebAudio, pageVisibility, FullScreen and PointerLock APIs, for patterns like Component-Entity-Architecture and Object-Pooling and for sub-projects like
Decoupled-Input and InfiniteGround.
Browsing a website inside of a 3D scene, or: I put a
in your computer
WebGL is not only for games – it can fundamentally change how we interact with content delivered via the Web.
This is more of an artistic experiment, but the
initial question behind this was if one could seamlessly
blend traditional HTML and user interaction into an 3D WebGL
Handling cross-target development and deployment gets more and more important.
AMD-feature helps achieving this by dynamically loading the right implementation for a given feature at runtime, as well as creating a specific build just for one platform. No more code-branching inside of a module, but nicely organized files instead.
You might also want to read Alex Sexton's article about high performance deployment over here.
Loose coupling and task separation are common concepts – but are often missing when it comes to user input handling. When high performance and 60FPS are the goal, this is especially painful.
Decoupled-Input separates input listeners from handling logic, comes pre-built with listeners for keyboard, mouse, GamePad and Speech API, allows binding changes during runtime, and handles PointerLock and FullScreen.
To prove this, I created farbs, which does that in 948 bytes of code (457 bytes via gzip). It allows a declarative UI set up, late and lazy event binding and module communication via Pub/Sub.
I successfully introduced this approach in a high-traffic mobile website.
A persistent data store implementing the dojo/store API
In version 1.6, the Dojo Toolkit introduced the new Object Store, and my storage providers that were part of the official pre-1.6 builds are not compatible with the new API. But - Dojo no longer ships a persistent solution. Storehouse fills this gap, providing a persistent multi-backend solution that favors the IndexedDB engine.
Storehouse is fully CLA covered to provide maximum IP protection.
The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.