Raphael Traviss

Last updated 20180926T1833Z


Sends commands to your computer, which plays music via the MPD music server.

Technologies: Swift, UIKit
Details: Building a TCP socket translator for Music Player Daemon, setting up an image cache for album art fetched from a REST API, creating a custom UICollectionViewLayout subclass for browsing album art.


Front-end for a trouble ticketing system.

Technologies: JavaScript, React
Details: Using React Motion to build interactive UI animations, fusing traditional DOM libraries together with the React immutable model, evaluating Redux and React Router, handling nested asynchronous server requests using promises.

3D Content

Enhance your products with 3D assets

Where could this be effective? Application icons, viewports within web-based and iOS applications, 3D mock-ups and designs of your existing products, prestige 3D animations to demonstrate mastery of emerging technologies.

Animated Lamp

Custom 3D assets with animation, realistic lighting

Technologies: Blender, Cycles renderer,
Details: Constructing vertices using a bezier curve, rigging the lamp parts, creating keyframes, combining Cycles emissive materials with lamp lighting.

GCFSI Knowledge Platform for Michigan State University

Drupal system for data storage, sharing, and collaboration

Technologies: PHP, Drupal: views, Bootstrap, advanced_forum, blog, Panels/CTools
Details: Building a custom theme for Drupal, building Features modules to version-control the site components, creating Panels layouts that share data between components.


Converts between serial number formats for cellular devices.

Technologies: PHP, closures
Details: Creating workarounds for PHP 5.3, using closures for code clarity and performance, handling regex to parse input, handling conversions using chainable methods.


An index slider for UICollectionView

Technologies: UIKit, Core Graphics
Details: Mathematically determining layout, clearing space for text before it's drawn, adapting to changes in layout.


A nodejs backend for a trouble ticketing system

Technologies: NodeJS, Express
Details: Implementing a WSS/HTTPS server in NodeJS, reverse proxying through Apache, building sane REST resources that balance conceptual simplicity with real-world usage, designing a JavaScript object composition system to allow for a plugin architecture.

Subway Brawler

It's like Rocket League, but with scary subway thugs!

Technologies: Unreal, Unreal blueprints
Details: Modifying 3D assets from other artists, applying animations to skeletal meshes, blending animations, attaching animations to a state machine, multiplayer UI with the Unreal UI framework, multiplayer variable replication across clients and the server.

Arduino LEDs

A pretty light show for my family.

Technologies: Arduino, C++, WS2812 addressable LED strip
Details: Salvaging a 5v power source from a cellphone charger, loading the test pattern program onto the board, setting up the board with two power sources, wiring drain resistors, using an Arduino library to handle the timer-based addressable LED modules.


My 1994 Plymouth Sundance, powered by a DirectLogic DL05 industrial PLC

Technologies: Physical relays, industrial PLC programming, soldering and wiring
Details: Tapping into the electrical system to place the inputs and outputs, keeping the program under a certain size to fit into memory, sizing wires and fuses, designing the relay and fuse systems, testing the system on the road and making adjustments as needed.


A 3D authoring tool that visualizes heightmap data as mutable hexagonal tiles.

Technologies: Swift, SceneKit, AppKit, custom geometry
Details: Implementing a stack-based virtual machine as a recursive function, designing an architecture that would allow for arbitrarily-nested selections, arbitrary functions applied to them, and a UI control panel for each function.