Welcome! You will find here a growing collection of digital experiences and content by Max Irwin. All code on this site is lovingly handcrafted by yours truly. If you like what you see here and would like to get in touch, you can contact me on twitter @binarymax.

APPLICATIONS

Kriegspiel

krgspl.com

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.

Anagramica

anagramica.com

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.

Shape Experiment

shapex.org

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.

DonaldIrwin.com

donaldirwin.com

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.

Bashfill

max.io/bash.html

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.

Backgammon.js

/backgammon/

A fully functional open source Backgammon engine, UI, and basic AI written in JavaScript and HTML5. Highly compact and efficient, the linked demonstration page runs 24 self-playing games simultaneously.

Paint.io

http://paint.io

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.

DEMONSTRATIONS

Dilated Age of Information

Link to Demo

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.

Palette Extractor

Link to Demo

A tool to extract nice-looking palettes from arbitrary images. A set of MegaMan II images are used to demonstrate the algorithm.

jsCube

Link to Demo

An experiment in data cube structures in javascript, used to efficiently calculate aggregate results of an arbitrary dataset of several dimensions. Two structures are shown, each one having pros and cons, depending on use case.

Reality Remix

Link to Demo

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.

Square Chase

Link to Demo

My javascript entry into the first JS1k competition, with a concept based on a video game I wrote in Pascal in 1995. The demo consists of 4 squares of different colors that leave trails as they flee from the observer's mouse. Clicking a square increments the score by one and the square respawns. The demo is 1024 bytes of hand-golfed javascript.

Tree Generator

Link to Demo

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.

Randriaan

Link to Demo

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.

RayTrace

Link to Demo

An early canvas experiment, renders a raytrace of an observer-defined number of spheres of random size and color.

tRand

Link to Demo

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.

WRITINGS

Hidden Shapes

Link to Post

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

Link to Post

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

Anagramica is now FOSS

Link to Post

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

The Idea is Art

Link to Post

'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

REPOS

Github

Link to Profile

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.

Restlang

Link to Repo

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

Link to Repo

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

Link to Repo

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.

Harissa

Link to Repo

An experimental video-filter GUI and Algorithm for the browser. 'Probably the most inneficient way to remix video'

Palettable

Link to Repo

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.

Seurat

Link to Repo

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.

LeverPulley

Link to Repo

A javascript library for plug-and-play hoisting of data and functions into webworkers, for multithreaded browser execution.

asm2d

Link to Repo

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).

npm

npmjs.org

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!

jordan 4 laster jordan 3 jordan 7 marvin the martian nike kd 7 wings foamposites aqua jordan 7 ftlog jordan 7 marvin the martian Tom Brady Jersey women's laster 4s ftlog 7s foamposites metallic gold foamposites dark obsidian foamposites all star foamposites aqua oreo 4s Tom Brady Jersey women's lebron 12 all star foamposites aqua jordan 4 laster Seattle Seahawks Jerseys Seahawks Jerseys foamposites aqua lebron 12 court vision jordan 5 metallic silver Tom Brady Jersey women's Seattle Seahawks teal 4s michael kors Tom Brady Jersey foamposites metallic gold metallic silver 5s Tom Brady Jersey youth jordan 4 teal laster 4s oreo 4s louis vuitton outlet foamposites metallic gold chicago 10s oreo 4s bulls over broadway 10s jordan 7 marvin the martian jordan 4 teal New England Patriots Jersey lady liberty 10s for the love of the game 7s Russell Wilson Jersey metallic silver 5s foamposites all star lebron 12 court vision patriots super bowl jersey teal 4s laster 4s foamposites aqua lady liberty 10s bulls over broadway 10s foamposites mirror nike kd vii wings michael kors outlet lebron 12 all star New England Patriots metallic silver 5s lebron 12 all star jordan retro 3 ftlog 7s nike kd 7 wings Russell Wilson Jersey jordan 4 teal bulls over broadway 10s jordan 4 oreo Seattle Seahawks foamposites mirror patriots super bowl jersey jordan 4 teal bulls over broadway 10s teal 4s bulls over broadway 10s chicago 10s lebron 12 court vision jordan 4 oreo foamposites mirror lebron 12 court vision lady liberty 10s for the love of the game 7s laster 4s lady liberty 10s foamposites all star jordan 4 teal Patriots Jersey lebron 12 court vision Tom Brady Jersey jordan 4 teal jordan 3 jordan 3 jordan 7 marvin the martian ftlog 7s bulls over broadway 10s jordan 4 teal jordan 7 ftlog chicago 10s jordan 7 marvin the martian Tom Brady Jersey women's jordan 7 for the love of the game foamposites red october lebron 12 court vision Tom Brady Jersey women's Seahawks Jerseys cheap Tom Brady Jersey women's foamposites dark obsidian jordan 7 ftlog jordan 3 Seattle Seahawks Jerseys foamposites mirror marvin the martian 7s for the love of the game 7s jordan 5 metallic silver lady liberty 10s Seattle Seahawks for the love of the game 7s chicago 10s chicago 10s jordan 7 for the love of the game New England Patriots jersey jordan 10 lady liberty lebron 12 court vision laster 4s foamposites metallic gold teal 4s jordan 4 teal jordan 5 metallic silver lebron 12 all star nike kd 7 aunt pearl foamposites all star patriots super bowl jersey foamposites metallic gold jordan 7 marvin the martian jordan 7 marvin the martian for the love of the game 7s Tom Brady Jersey youth nike kd 7 wings New England Patriots jersey sale jordan 4 laster New England Patriots Jersey Seahawks Jerseys cheap metallic silver 5s teal 4s louis vuitton outlet nike kd 7 aunt pearl Russell Wilson Jersey Seahawks Jerseys nike free run michael kors bags Tom Brady Jersey metallic silver 5s ftlog 7s lebron 12 all star jordan 10 lady liberty jordan 10 chicago ftlog 7s nike kd vii wings foamposites metallic gold coach factory canada goose outlet nike retro jordans coach outlet coach outlet Michael Kors outlet jordan retro 7 coach outlet jordan retro 7 Michael Kors outlet canada goose legend blue 11s canada goose Michael Kors outlet Michael Kors outlet beats by dre coach outlet canada goose canada goose outlet louis vuitton moncler jackets nike air max uggs louis vuitton outlet beats by dre cheap nike air max coach outlet nike free run moncler jackets nike air max nike air max coach outlet jordan retro 12 nike free run louis vuitton outlet beats by dre cheap uggs outlet louis vuitton outlet uggs outlet jordan retro 7 retro jordans legend blue 11s canada goose outlet canada goose canada goose canada goose coach factory Michael Kors outlet Michael Kors outlet Michael Kors outlet jordan 7 jordan 7 canada goose outlet canada goose coach outlet canada goose outlet Michael Kors outlet jordan retro 7 legend blue 11s nike free run jordan retro 12 louis vuitton sac nike free run jordan retro 12 moncler jackets louis vuitton outlet coach outlet uggs outlet uggs outlet uggs outlet louis vuitton outlet louis vuitton outlet jordan 12 beats by dre cheap jordan retro 12 beats by dre cheap uggs outlet louis vuitton sac uggs outlet legend blue 11s louis vuitton pas cher louis vuitton outlet michael kors outlet michael kors outlet legend blue 11s louis vuitton outlet jordan retro 11 canada goose sale jordan retro 4 michael kors outlet canada goose sale jordan 4 french blue 7s jordan 11 air jordans jordan 11 jordan 4 michael kors outlet red cements 10s air jordan 4 jordan 11 canada goose outlet air jordans legend blue 11s jordan 11 michael kors outlet canada goose sale michael kors outlet michael kors outlet air jordan 4 uggs outlet canada goose outlet jordan 7 french blue canada goose sale jordan 13 jordan retro 4 michael kors outlet louis vuitton outlet michael kors outlet uggs outlet oreo 4s jordan retro 11 michael kors outlet jordan retro 4 air jordan 11 french blue 7s louis vuitton outlet jordan retro 4 jordan retro 4 uggs on sale legend blue 11s canada goose jordan retro 7 canada goose sale air jordans michael kors outlet louis vuitton outlet jordan 7 french blue michael kors outlet jordan 11 legend blue oreo 4s canada goose sale louis vuitton outlet jordan retro 11 louis vuitton jordan retro 4 michael kors outlet michael kors outlet michael kors outlet jordan 10 red cements michael kors outlet louis vuitton outlet air jordan 4 michael kors outlet michael kors outlet jordan 4 air jordan 4 jordan 11 jordan retro 4 jordan retro 13 jordan 4 michael kors outlet michael kors outlet jordan 4 jordan 4 oreo air jordans jordan retro 4 michael kors outlet jordan 11 jordan 10 red cements michael kors outlet jordan retro 11 jordan 11 louis vuitton outlet jordan retro 11 jordan retro 11 legend blue 11s jordan retro 11 retro jordans jordan retro 11 french blue 7s michael kors outlet michael kors outlet jordan retro 4 jordan 11 legend blue jordan 11 legend blue red cements 10s legend blue 11s oreo 4s jordan 11 louis vuitton outlet french blue 7s jordan retro 11 jordan retro 4 canada goose outlet jordan 11 legend blue louis vuitton outlet canada goose sale louis vuitton outlet michael kors outlet jordan retro 4 jordan retro 11 jordan retro 11 legend blue 11s jordan 11 legend blue jordan 11 legend blue jordan retro 11 legend blue 11s air jordan 4 michael kors outlet jordan retro 11 air jordans louis vuitton outlet jordan retro 11 jordan 11 air jordan 4 air jordans jordan retro 11 jordan retro 11 jordan retro 4 jordan retro 11 jordan retro 11 jordan retro 4 jordan retro 11 michael kors outlet jordan retro 4 michael kors outlet jordan 11 jordan 11 jordan 4 louis vuitton outlet air jordan 4 louis vuitton outlet air jordans oreo 4s louis vuitton outlet louis vuitton outlet michael kors outlet legend blue 11s