An overview of my GitHub projects.

Hi, my name is Glenn Wright and I'm a data scientist by trade, but not all of my projects are data science projects.


A brief, but possibly open-ended, series I wrote on lesser-known programming concepts.


VisualSpinner3D (visual-spinner-3d)

The most comprehensive existing visualizer and simulator for flow artists. It can be used to visualize almost any sequence of movements for any number of flow props, allowing users to plan routines and analyze geometric movements. Sequences of movements are serializable as JSON. The engine is written in JavaScript, and several visualization options are available, including HTML5 Canvas and phoria.js. The project is open-ended, but largely finished. Featured on Spin More Poi. More information is available on the project page.

DeepDream for Cats (deep-dream-for-cats)

An experimental project using deep convolutional networks. It is based on Google's DeepDream program and was written using the SciPy ecosystem and Keras. The original DeepDream program is infamous for generating images of "dogslugs", because the network was trained on an dataset that has images of many different breeds of dogs. I wondered if it might be possible to generate "catslugs" by retuning the network on different data - specifically, the cat breed images from the Oxford-IIIT Pet Dataset.

The project is complete. Ultimately, the output was a bit disappointing - it was noticeably less doglike than the original DeepDream images, but did not produce "catslugs". Nevertheless, I learned a great deal about constructing and training deep neural networks. I discuss possible reasons for the disappointing output here.

Hecatomb (hecatomb)

Hecatomb is a rogue-like, fortress-building game inspired by games like Dwarf Fortress and KeeperRL, built in JavaScript using the ROT.js library. The player controls a necromancer that summons and commands zombies to build a lair and fight off the marauding forces of good. Currently, the game runs on the desktop using Electron. The project has seen limited playtesting but is currently in the pre-alpha stage of development.

Ineffable (ineffable)

A text mining project using the SciPy ecosystem, based on data from the Erowid Experience Vaults. The original plan was to create word clouds based on distinctive terms associated with different pharmaceuticals, then commission artists to illustrate the word clouds by hand. Eventually, I discovered that a fairly similar project had been done for, and abandoned the project. I did, however, learn a great deal about topic modeling, clustering, Doc2vec, tf-idf, and other methods of data reduction for text mining, which was the other main goal of the project.

React/Redux/Twilio to-do app (react-redux-twilio-todo)

A to-do app built using Express, React, React-Redux, the Twilio API, and a variety of other JavaScript tools, hosted on Heroku. The project is open-ended, but I use it daily. I built it both for the sake of having a personalized to-do app, and to teach myself how to develop and host a full-stack web application.

Laser-cut algorithmic snowflakes (laserflakes)

Processing code for my relatively popular Instructable. The instructable contains instructions for generating images of snowflakes, each one unique, and converting them to vector diagrams using Inkscape, compatible with most laser cutters. The snowflakes are generated using an algorithm loosely inspired by randomized L-systems. The project is complete.

Mind-controlled PAC-MAN (ssvep-pacman)

Forked from a project for a hackathon in 2015. We attempted to create a brain-controlled interface to Pac-Man similar to that seen in this video. We used an OpenBCI board, and ultimately had a difficult time getting a high quality signal from the relatively low-quality electrodes we had available. Code was written in Python, Go, and JavaScript; I worked on the Python and JavaScript portions. The project is on indefinite hiatus, until someone comes up with better hardware technology.

Arduino-based LED projects (light-and-motion)

Code for three projects using the Arduino-compatible Teensy microcontroller and various motion sensors (accelerometers, gyroscopes, compasses) to create motion-sensitive LED flow props. Projects are complete. Code is written in a subset of C++.

Lisp-to-JavaScript transpiler (lisp2js)

Exactly what it says on the tin. A project to teach myself Lisp and understand how parsing and lexing work, and to ensure that I understand syntactic macros. Written in JavaScript.

Don't Starve mods (dontstarvemods)

Two simple mod packs, written in Lua, for the Klei Entertainment games Don't Starve and Don't Starve Together. One is complete and available on Steam Workshop; the other is in development.

Unnamed coral bleaching art installation (coral-bleaching)

Preliminary code for a project with GitHub user Brigid Rose. The goal is to use ocean temperature trend data to control colored LEDs on a sculpture of coral, to illustrate how climate change contributes to the problem of coral bleaching. Project is in progress.