Coding and Modelling (Summary List)

Movement Sonification

I do psychology experiments on how auditory feedback can augment, replace, and enrich natural proprioception, improving motor learning and motor control in fast, skilled movements. I worked previously through my company Performance Sonification (dissolved) and now in collaboration with Harris Lab at York University.


Audioproprioceptive Sensory Augmentation

Bodily awareness via proprioceptive feedback is slow, inaccurate, and often suppressed by the brain. The basic idea is to provide the brain with a better channel of proprioceptive information through auditory feedback, which the brain can process very fast. Wearable sensors record movement and, in real-time (1000Hz sampling, < 2ms latency), produce auditory feedback based on how the current movement compares to an ideal model performance.

My current laboratory work uses unconstrained reaching motions through 3D space, although you could also sonify explosive sport movements like the standing-start shown in the diagram below (or, e.g., baseball pitches).


I develop ultra fast wearable embedded sensor systems for movement sonification. I work with the Cortex M4 and ESP32, develop bare-metal digital sound synthesis techniques, use inertial sensors, design bespoke PCB feathers (KiCad), and 3D print enclosures (FreeCAD).

Motion Processing and Spatial Analysis

I write motion processing algorithms for both real-time processing in embedded hardware (C++) and for post-processing (R). I do motion detection and segmentation, coordinate transformations, input integration, path comparisons (error estimation), and time-warping (both post-processing dynamic time-warping and real-time online warping estimates).

  • Sample C++ code for tracking linear position through space from raw gyroscope readings.
  • Code used in my last reach study, for both real-time motion tracking with an inertial sensor system (unaligned quaternions), and post-processing in R.

Phenomenal Consciousness

I do interdisciplinary research on how we subjectively experience the world. I’m particularly interested in how memory and sensory perception interact to afford consciousness of the past and present. Most of my work focuses on experiencing what’s not there (memories, dreams, hallucinations, VR), the feelings of presence and pastness, and the neural correlates of consciousness.

You might check out this piece and this piece I wrote on presence and digital fluency, or this paper, on how perception involves experience of the past. The paper was one of two runners-up for the essay prize at the Centre for Philosophy of Memory. I summarize the idea in a blog post.

Popular Media Posts

Image: Self-portrait by Ernst Mach, 1886

Philosophy Work:

Computational Modelling

Neuromatch Academy’s course in computational neuroscience got me started with GLMs for modelling task-dependent fMRI responses and linear decoders of fMRI data. I’ve written a bunch of Python code for both real public fMRI data (e.g., through the HCP), and code to generate realistic simulated fMRI data.

  • GLM modelling of task-dependent somatomotor cortex responses from simulated fMRI data (Python).
  • Linear decoding (logistic regression) of motor tasks from simulated somatomotor cortex fMRI data (Python).

Teaching and AI Demos

I’ve taught philosophy and cognitive science at a wide range of schools. I make philosophy relevant to STEM students, and STEM relevant to philosophy students. In addition to traditional lectures and Socratic discussion, I’m writing a series of accessible coding demos in CoLab for core models in cognitive science, such as deep neural networks and “physical symbol systems” (in the style of Simon and Newell). My teaching philosophy.

Coding Demos

  • Sample physical symbol system which uses heuristics to solve a version of the river crossing problem.
  • Single-layer neural network (McCulloch-Pitts Neuron) learning with the Perceptron Convergence Rule.
  • A deep neural network which learns to do sentiment analysis on IMDb reviews, with some explanation of why it’s hard to interpret the hidden layer.

Courses Taught

Here’s a list, organized by the last time I taught the course and where. I never taught it, but for those interested here is a sample syllabus for philosophy of neuroscience.

Cognitive Science and Philosophy of Mind

  • Philosophy of Mind, Washington University in St. Louis (PNP/Phil 315, winter 2024) | syllabus
  • Introduction to Cognitive Science, Washington University in St. Louis (PNP 200, winter 2024) | syllabus
  • Reading Course (Senior Capstone) in Deep Learning, Washington University in St. Louis (PNP 390, fall 2023) | reading list
  • Philosophy of Psychology, University of British Columbia, Okanagan (Phil 446, winter 2022) | syllabus
  • Philosophy of Artificial Intelligence, York University (Cogs/Phil 3750, winter 2021) | syllabus
  • Minds, Brains, and Machines, York University (Cogs/Phil 2160, fall 2020)
  • Objectivity in Perception, Rice University (Fwis 129, spring 2015)


  • The Examined Life, Lebanon Valley College (Phl 110, spring 2018)
  • American Philosophy: Pragmatism, Kutztown University of Pennsylvania (Phi 280, spring 2017)
  • Topics in Moral Theory: Virtue Ethics, Kutztown University of Pennsylvania (Phi 235, fall 2016)
  • Introduction to Philosophy, Kutztown University of Pennsylvania (Phi 030, fall 2017)
  • Introduction to Logic, Rice University (Phil 106, summer 2014)
  • Introduction to Ethics, Lone Star College (Phil 2306, fall 2011)

Bikes and Sport

I’ve been an amateur athlete much of my life, competing in both powerlifting as a youth and track cycling as an adult. In the past, I’ve raced at velodromes in Texas, Pennsylvania, New York, and Ontario. I’ve also worked as a community youth cycling coach and as a bike mechanic in a local bike shop.

Photo credit: Ivan Rupes

Applications of Proprioceptive Phenomenology to Sport Training

Mechanic Experience

For a brief time I was a pretty good bike mechanic. I assembled, tuned, and safety-checked mechanical bikes, of all levels, out-of-box for customer orders. I also performed extensive tune-ups including stripping bikes to the frame with a full rebuild of all mechanical components. Below is my bike, which I built from the frame up.


I’ve also been a community cycling coach at T-Town (2017/2018), one of the premier velodromes in the US.

  • Coached youth aged 8-16 in spring and fall youth bicycle racing league (BRL).
  • Ran indoor cycling classes for youth for the Boys and Girls Club and Allentown Community Bike Works (Gear Up Academy).
  • Ran training sessions as needed for the velodrome’s youth race team.
  • Ran bicycle safety program for youth aged 4-8 (PeeWee Pedalers).
  • Ran try-the-track classes for adults learning to ride the velodrome.
  • Fit youth riders on track bikes and helped them understand the mechanics of riding a fixed-wheel, single-gear bicycle.
Variable amplitude voltage/sound waves generated by two-timer pulse-width modulation.