A web-playable version of the classic chess variant. Like chess, in order to play, you need two players for a game. In-depth rules and guide are available on the site. The entire game was built as a side project over 4 months time, and is fully open source under the MIT License.
A single player anagram game, inspired by the British game show 'Countdown'. The entire game was built as a side project over a week, and is playable on desktop and tablet devices.
A single player shape identification game for mobile devices (and also browsers). An exercise in interface and minimalism and intuition, to be quickly understandable and playable by anyone. The game was written in a single day, and tens of thousands of shapes have been identified since release.
A collection of my Father's Kaballah inspired works of art. After his passing, my siblings and I gathered this small selection from his much larger volume of artwork to display on the web.
A tool to draw 7-color 80x20 artworks that can be exported as a bash script to display in a *nix terminal. Useful for creating graphics that identify servers upon connection, or just for fun. Images can be shared as easily as links. Here is the image in the thumbnail which I quickly drew for this card.
A basic HTML5 drawing tool. While the site is live the tool is no longer under development. Eventually the domain will house the in-development Palettable sprite illustration app.
A commission for an art show 'Conflicts In Time'. The piece shows a color map representation of the time dilation difference for a ping between the observer and the server.
A tool to extract nice-looking palettes from arbitrary images. A set of MegaMan II images are used to demonstrate the algorithm.
A video remix experiment, with a resulting video run through a custom filter coded in C#. The filter splits a video into frames, remixes the frame using a bitwise Sierpinski carpet algorithm, and stiches the frames back together.
An interactive art project that creates a genetic tree starting from a single seed of observer-defined parameters. The observer can specify trunk size, branch count, leaf size, growth rate, and other parameters. Each generated tree is unique. The piece was displayed as an installation at a show, and participants ordered their printed trees on A3 paper. The resulting image is SVG and can be printed to keep pure vector resolution.
My Entry into the 2013 Victory Boogie Woogie code competition. Artists were asked to recreate the last work of Piet Mondriaan in Utrect Netherlands. The piece uses a genetic algorithm to slowly recreate the box-like work with circles, lines, or squares. The longer the algorithm runs, the greater the likeness. The resulting image is SVG and can be printed to keep pure vector resolution.
An early canvas experiment, renders a raytrace of an observer-defined number of spheres of random size and color.
An experiment which used the Twitter stream API as entropy for randomness to generate a brownian motion image. The resulting images are beautiful and discerning clumps of information. The applicaton no longer works, due to restrictions Twitter placed on its public API, but a screenshot and the code remains for archival purposes.
I am slowly working on a side-project that makes a video into a mishmash of circles for each frame. I have an early version running, that manually takes a video, splits it into frames, remixes each frame into the circle mishmash, and recomposes the video with the new remixed frames. The project is called 'Harissa'. read more
Artificial Expression(AE) draws a parallel to Artificial Intelligence(AI), in that an artificially expressive program will display sentience relating to creating original subjective aesthetics. I explore the ideas behind these complexities, as well as techniques in use today to generate art, and set a standard to use in deciding whether a work is an artificial expression. read more
I'm not entirely sure why I never open sourced it in the first place. After 25 years of coding I've only recently become active in opening my code for others to see and use. I have a cathartic story to tell about a previous project, which I've never told anyone about, and silently open sourced this past winter. read more
'What is art' has been debated ad infinitum, and some like to draw the line and say something is not art if it cannot be expressed - as art is, by definition, expression. My argument is that one not even need express the idea outwards with our own voice, hands, or otherwise. The idea can exist purely in one's own mind and still be a work of art. It is expression to oneself, therefore it is art. read more
A good deal of my work is available as Open Source on Github. Much of it is available under MIT license. If you have any questions regarding any package or repository, or would like to contribute, please get in touch! A curated selection of some of my projects on github are summarized in the other cards in this section.
A cross-compiling DSL (domain specific language) for building APIs. Restlang is a markdown-inspired language that is used to generate server route specifications, client libraries, testing scripts, and developer documentation for web based APIs.
Heimdall is a type-safe, documentation oriented, and security minded API library for Express. The goal of Heimdall is to provide an easy way to create reflective and secure REST resources, to enforce documentation standards, to separate req/res from the MVC pattern, and to ensure all incoming and outgoing data is registered, validated, documented, and tested.
Datatype validation, casting, and documentation library for node.js. Originally written as part of Heimdall, it was split out into its own package to be used independently.
An experimental video-filter GUI and Algorithm for the browser. 'Probably the most inneficient way to remix video'
An experimental frame sprite editing suite for the browser. Meant to allow easy pixel style sprite illustrations and animations for use in games, gifs, and other media.
A better working algorithm and library derived from my work on Randriaan, meant to be suitable for any photo. The same algorithm is used to filter frames for Harissa.
Playground and benchmarks for hand-coded 2d graphics in asm.js. Written to test the feasibility of outsourcing entire graphics jobs to a pixel manipulating engine, by rewriting fundamental canvas API methods such as arc and line. The short answer: faster than canvas in FireFox, slower in Chrome (as of November 2014).
On npmjs.org you will find a list of node.js packages I have made available for installation. If you have any questions about any of them or would like to contribute, please get in touch!