Dan Friedman

Hi, I'm Dan Friedman. I'm a senior at Yale University. I put together this website to showcase some of the things I've been working on, mostly JavaScript web applications for doing interesting things with the browser. You can also look at my resume, as a PDF or in HTML.


Kineograph is a JavaScript web app for making flipbook-style animations in the browser. I used to do some animation with Adobe Flash but my access code expired and Flash is on its way out anyway, so I wrote Kineograph as a kind of replacement. Kineograph supports onion-skinning and layers, so you can actually make fairly sophisticated animations if you're interested and then export your animation as a gif.

I wrote Kineograph in JavaScript/JQuery using the HTML Canvas API. You can play with Kineograph here and look at the source code on GitHub.


turnStyle is a Google Chrome extension that lets you override websites with your own style rules. You can write your own CSS in the extension popup or in a style manager and then save your rules and apply them to any website. turnStyle saves your settings in Chrome storage, so your settings are synchronized across all your devices. I made the extension because I use a bunch of websites written in unformatted HTML, which is not very easy to read (e.g., this). turnStyle makes it easy to add basic styles that make those sites more readable. It's also a good way to hide content you find noxious (.noxious-content { display: none !important; }). I think turnStyle can have accessibility applications, too, for increasing text size or making websites high-contrast.

I wrote turnStyle in Vanilla JS. It's in the Chrome Web Store and the source code is on GitHub.

Game of Life

Conway's Game of Life is a classic example of artificial life. The game board is a two-dimensional grid which represents a field of cells, each of which is either alive or dead (or populated or unpopulated). Every time step, a simple set of rules determines which cells live, die, or come to life. All sorts of interesting patterns emerge when you let it run. You can read more about it on Wikipedia.

I wrote a simple, interactive implementation of the Game of Life in Vanilla JS. You can play with it here and check out the source code on GitHub. Just enter an initial pattern and watch it go! As a bonus, this Game of Life is responsive, so you can use it on your phone.


imageMapWrapper is a JQuery plug-in that adds some functionality to HTML image maps. For example, it makes image maps responsive and it lets you highlight different areas. I built a "view from your section" tool for the Kentucky Center for the Performing Arts, to map photographs to seatmaps. I couldn't find a plug-in I liked so I made this one.

imageMapWrapper uses the HTML Canvas API. There's a little demo here and the source code is on GitHub.

There are some other small projects on my GitHub page.