(Toggle Particles)

AMAZING MAZE

  • The maze consists of a path "FORGER" and a path "FINDER". The display is rendered using Two.js.
  • Maze walls are not "built" - they are chizzled away as the forger makes its way through solid wall. Everywhere the forger goes, it takes out a little chunk of wall (This part is not animated. The animation starts with the "finder".).
  • The forger starts at the END tile and works its way to the START tile. This makes the maze more difficult to solve for the path finder.
  • The path finder looks for the end tile using a depth-first search algorithm that randomly navigates unexplored paths.
  • The tiles of the path spin clockwise as the path finder goes by. They spin counterclockwise when the path finder backtracks over them.
Justin as Tupolski in The Pillowman.

My shirt and tie go rather well with this page.

My name is Justin, and I graduated from the University of Puget Sound in 2017 as a computer science and theatre double major.

I am a software engineer at Snap, Inc. in Los Angeles, CA. I currently work on the chat UI for the Android platform of the company's flagship product.

Feel free to check out my Github page as well as the web application I built in college below....

TheatreBot

Theatre Callback Scheduler Application

(Go to TheatreBot) TheatreBot Mascot

In theatre, casting a show takes time. One of the most time consuming aspects of casting a show is creating a callback schedule.

Let me provide a bit of context. Typically, a show will hold two days of auditions:

  1. General Auditions

    This is the day when anyone who wants to audition for a play shows up and does so. They may do a monologue, sing a song, or read a pre-provided audition piece.

  2. Callbacks

    After general auditions, the director and assistant directors decide which actors they would like to see read for certain parts. For example, a director may want to see Actor A read for Romeo and Actor B read for Juliet. The director may also want to see Actor A read for Romeo again but with Actor C reading for Juliet instead of Actor B.

During callbacks, the director chooses which actors he or she wants to see at a given time. The director may only want to see one actor, maybe two actors, maybe four, etc.

These "groupings" are then organized into a callback schedule.

A single director casting for a single play isn't that difficult. It's more flexible; a director can change his or her mind and decide to see another grouping on the fly. But what if there are multiple directors simultaneously casting for multiple plays?

Theatre Festivals

A theatre festival consists of multiple plays happening in a short amount of time. For example, a festival of 4 plays can go on for 4 weeks, with one play performed each weekend.

A festival will cast their shows from a pool of actors who all audition together on the first day. The next day gets tricky, because there will inevitably be scheduling conflicts between directors; some directors will want to see the same actors. Traditionally, creating a callback schedule for a festival is a slow process. The schedules are made by hand, and every director in the room tries their best to make sure they each see all or most of the actors they want to see.

THIS CAN TAKE HOURS.

Having been involved in one of these festivals - and being the savvy computer scientist that I am - I said to hell with that and wrote a script that created a callback schedule automatically. And it worked.

Due to popular demand, I decided to build a web application based on my callback scheduling algorithm.

I call it TheatreBot.