<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Charlie Gerard</title>
    <link>https://charliegerard.dev</link>
    <description>Posts and side projects exploring human-computer interaction with emerging web technologies.</description>
    <language>en</language>
    <atom:link href="https://charliegerard.dev/feed.xml" rel="self" type="application/rss+xml" />
    <lastBuildDate>Tue, 20 Oct 2026 00:00:00 GMT</lastBuildDate>
    <item>
      <title>Overgrown, when plants invade your abandoned tabs</title>
      <link>https://charliegerard.dev/posts/overgrown-extension</link>
      <guid isPermaLink="true">https://charliegerard.dev/posts/overgrown-extension</guid>
      <pubDate>Tue, 20 Oct 2026 00:00:00 GMT</pubDate>
      <description>A fun little project that came out of a creative exercise around the word 'Overgrowth'.</description>
      <category>Chrome extension</category>
      <category>Creative coding</category>
    </item>
    <item>
      <title>Overgrown</title>
      <link>https://charliegerard.dev/projects/overgrown</link>
      <guid isPermaLink="true">https://charliegerard.dev/projects/overgrown</guid>
      <pubDate>Thu, 01 Jan 2026 00:00:00 GMT</pubDate>
      <description>Slash through vines that have overgrown your abandoned tabs</description>
      <category>Chrome extension</category>
      <category>Creative coding</category>
    </item>
    <item>
      <title>Motion-controlled Street Fighter with the Bangle.js watch and WebAI</title>
      <link>https://charliegerard.dev/posts/street-fighter-banglejs-webai</link>
      <guid isPermaLink="true">https://charliegerard.dev/posts/street-fighter-banglejs-webai</guid>
      <pubDate>Mon, 08 Dec 2025 00:00:00 GMT</pubDate>
      <description>A few weeks ago, I attended the WebAI summit and got a Bangle.js watch so I worked on updating my Air Street Fighter prototype to use it.</description>
      <category>WebAI</category>
      <category>Motion control</category>
    </item>
    <item>
      <title>Stealing credentials via polymorphic Chrome Extension</title>
      <link>https://charliegerard.dev/posts/polymorphic-chrome-extension-attack</link>
      <guid isPermaLink="true">https://charliegerard.dev/posts/polymorphic-chrome-extension-attack</guid>
      <pubDate>Mon, 14 Apr 2025 00:00:00 GMT</pubDate>
      <description>A few days ago, I came across new research explaining a novel cybersecurity attack via polymorphic Chrome Extension and decided to spend some time recreating it</description>
      <category>Chrome extension</category>
      <category>Cybersecurity</category>
    </item>
    <item>
      <title>Air Street Fighter with WebAI</title>
      <link>https://charliegerard.dev/projects/air-street-fighter-banglejs-webai</link>
      <guid isPermaLink="true">https://charliegerard.dev/projects/air-street-fighter-banglejs-webai</guid>
      <pubDate>Wed, 01 Jan 2025 00:00:00 GMT</pubDate>
      <description>Play a motion-controlled Street Fighter demo with the Bangle.js and WebAI</description>
      <category>WebAI</category>
      <category>Motion control</category>
    </item>
    <item>
      <title>Hacking cars in JavaScript (Running replay attacks in the browser with the HackRF)</title>
      <link>https://charliegerard.dev/posts/replay-attacks-javascript-hackrf</link>
      <guid isPermaLink="true">https://charliegerard.dev/posts/replay-attacks-javascript-hackrf</guid>
      <pubDate>Mon, 16 Sep 2024 00:00:00 GMT</pubDate>
      <description>A few months ago, I prototyped a web-based tool to run replay attacks using HackRFs and the WebUSB API, and unlocked my friend's car remotely.</description>
      <category>SDR</category>
      <category>Cybersecurity</category>
      <category>Hardware</category>
    </item>
    <item>
      <title>Hacking cars in JavaScript</title>
      <link>https://charliegerard.dev/projects/hacking-cars-javascript</link>
      <guid isPermaLink="true">https://charliegerard.dev/projects/hacking-cars-javascript</guid>
      <pubDate>Mon, 01 Jan 2024 00:00:00 GMT</pubDate>
      <description>Run replay attacks in the browser using HackRF devices.</description>
      <category>Radio</category>
      <category>SDR</category>
      <category>Hardware</category>
      <category>Hacking</category>
    </item>
    <item>
      <title>Control UIs using wireless earbuds and on-face interactions</title>
      <link>https://charliegerard.dev/posts/control-uis-using-wireless-earbuds-and-on-face-interactions</link>
      <guid isPermaLink="true">https://charliegerard.dev/posts/control-uis-using-wireless-earbuds-and-on-face-interactions</guid>
      <pubDate>Sun, 10 Sep 2023 00:00:00 GMT</pubDate>
      <description>A few weeks ago, I stumbled upon a very cool research project around using the acoustic signature of gestures to create new interactions with interfaces and decided to implement a prototype version of it in JavaScript.</description>
      <category>Motion control</category>
      <category>HCI</category>
      <category>WebAI</category>
    </item>
    <item>
      <title>Voltage, current and resistance in electrical circuits</title>
      <link>https://charliegerard.dev/posts/voltage-electrical-circuit</link>
      <guid isPermaLink="true">https://charliegerard.dev/posts/voltage-electrical-circuit</guid>
      <pubDate>Mon, 07 Aug 2023 00:00:00 GMT</pubDate>
      <description>Some notes from reading chapter 4 of the book 'How computers really work'.</description>
      <category>Hardware</category>
      <category>Engineering</category>
    </item>
    <item>
      <title>Notes from competing in my first CTF</title>
      <link>https://charliegerard.dev/posts/competing-cybersecurity-ctf-ncl</link>
      <guid isPermaLink="true">https://charliegerard.dev/posts/competing-cybersecurity-ctf-ncl</guid>
      <pubDate>Tue, 04 Apr 2023 00:00:00 GMT</pubDate>
      <description>Last weekend, I competed in the National Cyber League (NCL), my first cybersecurity CTF. I wrote down notes about the tools I used in the challenges and wanted to share in case anyone is curious to know how CTFs work.</description>
      <category>Cybersecurity</category>
    </item>
    <item>
      <title>From Wi-Fi to Li-Fi, sending data via light using Arduino and JavaScript</title>
      <link>https://charliegerard.dev/posts/lifi-sending-data-light</link>
      <guid isPermaLink="true">https://charliegerard.dev/posts/lifi-sending-data-light</guid>
      <pubDate>Mon, 13 Feb 2023 00:00:00 GMT</pubDate>
      <description>Different parts of the electromagnetic spectrum can be used to transmit information. Using visible light, data can be encoded and transmitted using a technology called Li-Fi which aims at using your existing lights for wireless communication.</description>
      <category>Hardware</category>
      <category>Arduino</category>
    </item>
    <item>
      <title>On-face interactions</title>
      <link>https://charliegerard.dev/projects/on-face-interactions</link>
      <guid isPermaLink="true">https://charliegerard.dev/projects/on-face-interactions</guid>
      <pubDate>Sun, 01 Jan 2023 00:00:00 GMT</pubDate>
      <description>Control UIs using wireless earbuds and on-face interactions</description>
      <category>HCI</category>
      <category>AI</category>
      <category>Audio</category>
    </item>
    <item>
      <title>Cybersecurity attacks using Deno</title>
      <link>https://charliegerard.dev/posts/cybersecurity-attacks-deno</link>
      <guid isPermaLink="true">https://charliegerard.dev/posts/cybersecurity-attacks-deno</guid>
      <pubDate>Wed, 07 Dec 2022 00:00:00 GMT</pubDate>
      <description>When I'm sharing what I learn about cybersecurity in open-source, a reaction I've seen people have is to mention Deno as a tool that will fix the problem. The risk of supply-chain attacks still exist and I wrote this post to show how it can be done.</description>
      <category>Cybersecurity</category>
    </item>
    <item>
      <title>Setting up a reverse shell with Vultr</title>
      <link>https://charliegerard.dev/posts/reverse-shell-vultr</link>
      <guid isPermaLink="true">https://charliegerard.dev/posts/reverse-shell-vultr</guid>
      <pubDate>Sun, 04 Dec 2022 00:00:00 GMT</pubDate>
      <description>I used Vultr recently and struggled to create a reverse shell so this post is gathering the steps that worked</description>
      <category>Cybersecurity</category>
    </item>
    <item>
      <title>Demystifying machine learning via Bluetooth with arduino</title>
      <link>https://charliegerard.dev/posts/demystifying-machine-learning-bluetooth-arduino</link>
      <guid isPermaLink="true">https://charliegerard.dev/posts/demystifying-machine-learning-bluetooth-arduino</guid>
      <pubDate>Mon, 31 Oct 2022 00:00:00 GMT</pubDate>
      <description>The first time I experimented with TensorFlow.js for micro-controllers, I got really excited about the fact that a machine learning model was transferred via bluetooth to my Arduino. In this post, I am going to explain how it works.</description>
      <category>Hardware</category>
      <category>Arduino</category>
      <category>AI/ML</category>
    </item>
    <item>
      <title>Gesture-based payments</title>
      <link>https://charliegerard.dev/posts/gesture-based-payments</link>
      <guid isPermaLink="true">https://charliegerard.dev/posts/gesture-based-payments</guid>
      <pubDate>Mon, 10 Oct 2022 00:00:00 GMT</pubDate>
      <description>Recently, I've been experimenting with gesture control and researched how this technology could be used as a payment method.</description>
      <category>Motion control</category>
      <category>HCI</category>
      <category>WebAI</category>
    </item>
    <item>
      <title>Building an aircraft radar system in JavaScript</title>
      <link>https://charliegerard.dev/posts/aircraft-radar-system-rtl-sdr-web-usb</link>
      <guid isPermaLink="true">https://charliegerard.dev/posts/aircraft-radar-system-rtl-sdr-web-usb</guid>
      <pubDate>Mon, 29 Aug 2022 00:00:00 GMT</pubDate>
      <description>A few years ago, I came across an awesome talk by Thomas Watson in which he talks about how he built AirplaneJS, a web app that picks up ADS-B radio signals from airplanes and plots them in real time on a map in the browser. I had no idea this was possible in JavaScript so I started looking into it.</description>
      <category>SDR</category>
      <category>Radio</category>
      <category>Hardware</category>
    </item>
    <item>
      <title>Gaining remote access to a computer with a reverse shell attack in Node.js</title>
      <link>https://charliegerard.dev/posts/reverse-shell-node-js</link>
      <guid isPermaLink="true">https://charliegerard.dev/posts/reverse-shell-node-js</guid>
      <pubDate>Tue, 28 Jun 2022 00:00:00 GMT</pubDate>
      <description>I recently learnt what a reverse shell is and got excited to experiment running this kind of attack via a Node.js module. This post will go through my thought process and the different options I tried.</description>
      <category>Cybersecurity</category>
      <category>Node.js</category>
    </item>
    <item>
      <title>Ultrasonic payments</title>
      <link>https://charliegerard.dev/posts/ultrasonic-payments</link>
      <guid isPermaLink="true">https://charliegerard.dev/posts/ultrasonic-payments</guid>
      <pubDate>Mon, 06 Jun 2022 00:00:00 GMT</pubDate>
      <description>Experimenting with ultrasonic data transmission in JavaScript as a  payment method.</description>
      <category>Creative coding</category>
    </item>
    <item>
      <title>Running a ransomware attack in a Node.js module</title>
      <link>https://charliegerard.dev/posts/ransomware-script-node-module</link>
      <guid isPermaLink="true">https://charliegerard.dev/posts/ransomware-script-node-module</guid>
      <pubDate>Thu, 05 May 2022 00:00:00 GMT</pubDate>
      <description>A couple of weeks ago, I experimented with creating a small ransomware script, and looked into how to run an attack in a Node.js module.</description>
      <category>Cybersecurity</category>
      <category>Node.js</category>
    </item>
    <item>
      <title>Building UIs in Figma with hand movements</title>
      <link>https://charliegerard.dev/posts/hand-control-ui-figma-plugin</link>
      <guid isPermaLink="true">https://charliegerard.dev/posts/hand-control-ui-figma-plugin</guid>
      <pubDate>Thu, 20 Jan 2022 00:00:00 GMT</pubDate>
      <description>I've played around with hand detection using TensorFlow.js in the past but since they released the ability to detect multiple hands, I've wanted to explore building UIs with hand movements.</description>
      <category>Motion control</category>
      <category>HCI</category>
      <category>WebAI</category>
      <category>Tf.js</category>
    </item>
    <item>
      <title>Aircraft radar system</title>
      <link>https://charliegerard.dev/projects/rtl-sdr-airplane-tracking</link>
      <guid isPermaLink="true">https://charliegerard.dev/projects/rtl-sdr-airplane-tracking</guid>
      <pubDate>Sat, 01 Jan 2022 00:00:00 GMT</pubDate>
      <description>Getting live data from passing airplanes</description>
      <category>SDR</category>
      <category>Radio</category>
      <category>Hardware</category>
    </item>
    <item>
      <title>Hand-controlled Figma</title>
      <link>https://charliegerard.dev/projects/figma-plugin-hand-controlled</link>
      <guid isPermaLink="true">https://charliegerard.dev/projects/figma-plugin-hand-controlled</guid>
      <pubDate>Sat, 01 Jan 2022 00:00:00 GMT</pubDate>
      <description>Build UIs in Figma with hand movements</description>
      <category>WebAI</category>
      <category>Motion control</category>
    </item>
    <item>
      <title>Making an interactive digital frame with head-tracking using Three.js and TensorFlow.js</title>
      <link>https://charliegerard.dev/posts/interactive-frame-head-tracking</link>
      <guid isPermaLink="true">https://charliegerard.dev/posts/interactive-frame-head-tracking</guid>
      <pubDate>Sun, 01 Aug 2021 00:00:00 GMT</pubDate>
      <description>Over the past few weeks, I've been working on a new side project to replicate a visual effect called &quot;head-coupled perspective&quot; to make interactive art with head tracking, using Three.js and TensorFlow.js.</description>
      <category>Motion control</category>
      <category>HCI</category>
      <category>WebAI</category>
      <category>Tf.js</category>
      <category>3D</category>
      <category>Three.js</category>
    </item>
    <item>
      <title>Toggle dark/light mode by clapping your hands</title>
      <link>https://charliegerard.dev/posts/toggle-dark-mode-clapping-hands-chrome-extension</link>
      <guid isPermaLink="true">https://charliegerard.dev/posts/toggle-dark-mode-clapping-hands-chrome-extension</guid>
      <pubDate>Wed, 14 Apr 2021 00:00:00 GMT</pubDate>
      <description>A few days ago, we released dark mode in beta. While we're still iterating on it, I built a Chrome extension to easily toggle it by clapping my hands.</description>
      <category>Motion control</category>
      <category>HCI</category>
      <category>WebAI</category>
      <category>Tf.js</category>
      <category>Chrome extension</category>
    </item>
    <item>
      <title>Speeding up Storybook locally by running filtered stories 🚀</title>
      <link>https://charliegerard.dev/posts/speeding-up-storybook-locally</link>
      <guid isPermaLink="true">https://charliegerard.dev/posts/speeding-up-storybook-locally</guid>
      <pubDate>Thu, 08 Apr 2021 00:00:00 GMT</pubDate>
      <description>Working on a big monorepo means that developing with Storybook can become painfully slow. A small change can drastically speed it up!</description>
      <category>Engineering</category>
    </item>
    <item>
      <title>Setting up a RaspberryPi without monitor and keyboard</title>
      <link>https://charliegerard.dev/posts/setting-up-raspberry-pi-without-monitor-or-keyboard</link>
      <guid isPermaLink="true">https://charliegerard.dev/posts/setting-up-raspberry-pi-without-monitor-or-keyboard</guid>
      <pubDate>Mon, 05 Apr 2021 00:00:00 GMT</pubDate>
      <description>For a long time, I thought a keyboard and monitor were needed to do the initial setup of a RaspberryPi. However, I recently learnt that you can do this using only another computer!</description>
      <category>Engineering</category>
      <category>Hardware</category>
    </item>
    <item>
      <title>Predicting indoor location using machine learning and wifi information</title>
      <link>https://charliegerard.dev/posts/predicting-indoor-location</link>
      <guid isPermaLink="true">https://charliegerard.dev/posts/predicting-indoor-location</guid>
      <pubDate>Sat, 06 Mar 2021 00:00:00 GMT</pubDate>
      <description>After trying out a Python project called whereami, I spent some time trying to replicate it in JavaScript.</description>
      <category>AI/ML</category>
      <category>Node.js</category>
    </item>
    <item>
      <title>Creating low poly 3D scenes with Spline</title>
      <link>https://charliegerard.dev/posts/low-poly-scenes-spline</link>
      <guid isPermaLink="true">https://charliegerard.dev/posts/low-poly-scenes-spline</guid>
      <pubDate>Wed, 27 Jan 2021 00:00:00 GMT</pubDate>
      <description>Quick overview of Spline, a 3D design tool for web experiences and how I spent a few hours creating a low-poly scene.</description>
      <category>3D</category>
      <category>Creative coding</category>
    </item>
    <item>
      <title>Red light, green light</title>
      <link>https://charliegerard.dev/projects/red-light-green-light</link>
      <guid isPermaLink="true">https://charliegerard.dev/projects/red-light-green-light</guid>
      <pubDate>Fri, 01 Jan 2021 00:00:00 GMT</pubDate>
      <description>Squid game with body movement detection</description>
      <category>WebAI</category>
      <category>Motion control</category>
    </item>
    <item>
      <title>Hands-free coding</title>
      <link>https://charliegerard.dev/projects/hands-free-coding</link>
      <guid isPermaLink="true">https://charliegerard.dev/projects/hands-free-coding</guid>
      <pubDate>Fri, 01 Jan 2021 00:00:00 GMT</pubDate>
      <description>Gaze-controlled interface to write code</description>
      <category>WebAI</category>
      <category>Motion control</category>
    </item>
    <item>
      <title>Interactive digital frame</title>
      <link>https://charliegerard.dev/projects/interactive-digital-frame</link>
      <guid isPermaLink="true">https://charliegerard.dev/projects/interactive-digital-frame</guid>
      <pubDate>Fri, 01 Jan 2021 00:00:00 GMT</pubDate>
      <description>Interactive digital art frame with head-coupled perspective</description>
      <category>3D</category>
      <category>Motion control</category>
      <category>Three.js</category>
    </item>
    <item>
      <title>Dark mode clap extension</title>
      <link>https://charliegerard.dev/projects/dark-mode-clap-extension</link>
      <guid isPermaLink="true">https://charliegerard.dev/projects/dark-mode-clap-extension</guid>
      <pubDate>Fri, 01 Jan 2021 00:00:00 GMT</pubDate>
      <description>Toggle Netlify's dark mode by clapping your hands</description>
      <category>WebAI</category>
      <category>Tf.js</category>
      <category>Chrome extension</category>
    </item>
    <item>
      <title>Whereami.js</title>
      <link>https://charliegerard.dev/projects/whereami-js</link>
      <guid isPermaLink="true">https://charliegerard.dev/projects/whereami-js</guid>
      <pubDate>Fri, 01 Jan 2021 00:00:00 GMT</pubDate>
      <description>Node.js package to predict indoor location</description>
      <category>AI</category>
      <category>ML</category>
      <category>Node.js</category>
    </item>
    <item>
      <title>Gaze detection</title>
      <link>https://charliegerard.dev/projects/gaze-detection</link>
      <guid isPermaLink="true">https://charliegerard.dev/projects/gaze-detection</guid>
      <pubDate>Fri, 01 Jan 2021 00:00:00 GMT</pubDate>
      <description>JS library using iris tracking to detect a user's gaze</description>
      <category>WebAI</category>
      <category>Motion control</category>
      <category>HCI</category>
    </item>
    <item>
      <title>Safe space</title>
      <link>https://charliegerard.dev/projects/github-toxicity-bot</link>
      <guid isPermaLink="true">https://charliegerard.dev/projects/github-toxicity-bot</guid>
      <pubDate>Fri, 01 Jan 2021 00:00:00 GMT</pubDate>
      <description>GitHub bot that detects toxic comments on PRs</description>
      <category>WebAI</category>
      <category>Tf.js</category>
      <category>Creative coding</category>
    </item>
    <item>
      <title>WashOS</title>
      <link>https://charliegerard.dev/projects/washos</link>
      <guid isPermaLink="true">https://charliegerard.dev/projects/washos</guid>
      <pubDate>Fri, 01 Jan 2021 00:00:00 GMT</pubDate>
      <description>Interface triggered by acoustic activity monitoring</description>
      <category>WebAI</category>
      <category>Audio</category>
      <category>Creative coding</category>
      <category>Tf.js</category>
    </item>
    <item>
      <title>Splat</title>
      <link>https://charliegerard.dev/projects/splat</link>
      <guid isPermaLink="true">https://charliegerard.dev/projects/splat</guid>
      <pubDate>Fri, 01 Jan 2021 00:00:00 GMT</pubDate>
      <description>Play a 3D Fruit Ninja clone using hand motion</description>
      <category>WebAI</category>
      <category>Motion control</category>
      <category>HCI</category>
      <category>Creative coding</category>
      <category>Tf.js</category>
    </item>
    <item>
      <title>Whoosh</title>
      <link>https://charliegerard.dev/projects/whoosh</link>
      <guid isPermaLink="true">https://charliegerard.dev/projects/whoosh</guid>
      <pubDate>Fri, 01 Jan 2021 00:00:00 GMT</pubDate>
      <description>Control a 3D web game using hand gestures</description>
      <category>WebAI</category>
      <category>Motion control</category>
      <category>HCI</category>
      <category>Creative coding</category>
      <category>Tf.js</category>
    </item>
    <item>
      <title>Flappy windows</title>
      <link>https://charliegerard.dev/projects/flappy-windows</link>
      <guid isPermaLink="true">https://charliegerard.dev/projects/flappy-windows</guid>
      <pubDate>Fri, 01 Jan 2021 00:00:00 GMT</pubDate>
      <description>Play Flappy Bird with browser popup windows</description>
      <category>Creative coding</category>
    </item>
    <item>
      <title>Freedrum.js</title>
      <link>https://charliegerard.dev/projects/freedrum</link>
      <guid isPermaLink="true">https://charliegerard.dev/projects/freedrum</guid>
      <pubDate>Fri, 01 Jan 2021 00:00:00 GMT</pubDate>
      <description>Play with the Freedrum sensors in JavaScript</description>
      <category>Motion control</category>
      <category>HCI</category>
      <category>Creative coding</category>
      <category>WebMIDI</category>
    </item>
    <item>
      <title>Creating a Github action to detect toxic comments using TensorFlow.js</title>
      <link>https://charliegerard.dev/posts/github-action-toxic-comments</link>
      <guid isPermaLink="true">https://charliegerard.dev/posts/github-action-toxic-comments</guid>
      <pubDate>Sun, 16 Aug 2020 00:00:00 GMT</pubDate>
      <description>Over the weekend, I spent a few hours building a Github action to automatically detect potentially toxic comments and PR reviews.</description>
      <category>AI/ML</category>
      <category>Tf.js</category>
    </item>
    <item>
      <title>Yeah, nah... I'm not ok</title>
      <link>https://charliegerard.dev/posts/yeah-nah-not-ok</link>
      <guid isPermaLink="true">https://charliegerard.dev/posts/yeah-nah-not-ok</guid>
      <pubDate>Tue, 07 Jul 2020 00:00:00 GMT</pubDate>
      <description>If you've been following my work, you may be used to seeing weird JavaScript projects exploring HCI, but this post won't be about that.</description>
      <category>Personal</category>
    </item>
    <item>
      <title>Low poly 3D scene</title>
      <link>https://charliegerard.dev/projects/spline-3d-low-poly-scene</link>
      <guid isPermaLink="true">https://charliegerard.dev/projects/spline-3d-low-poly-scene</guid>
      <pubDate>Wed, 01 Jan 2020 00:00:00 GMT</pubDate>
      <description>Experimenting with Spline to create low poly 3D scenes</description>
      <category>3D</category>
      <category>Three.js</category>
      <category>Creative coding</category>
    </item>
    <item>
      <title>SVG art</title>
      <link>https://charliegerard.dev/projects/svg-posters</link>
      <guid isPermaLink="true">https://charliegerard.dev/projects/svg-posters</guid>
      <pubDate>Wed, 01 Jan 2020 00:00:00 GMT</pubDate>
      <description>Small collection of SVG art based on a trip to Iceland</description>
      <category>SVG</category>
      <category>Creative coding</category>
    </item>
    <item>
      <title>Houdini experiments</title>
      <link>https://charliegerard.dev/projects/houdini</link>
      <guid isPermaLink="true">https://charliegerard.dev/projects/houdini</guid>
      <pubDate>Wed, 01 Jan 2020 00:00:00 GMT</pubDate>
      <description>Tinkering with Houdini to create 3D animations</description>
      <category>3D</category>
      <category>Creative coding</category>
    </item>
    <item>
      <title>WebXR Pac-Man</title>
      <link>https://charliegerard.dev/projects/webxr-pacman</link>
      <guid isPermaLink="true">https://charliegerard.dev/projects/webxr-pacman</guid>
      <pubDate>Wed, 01 Jan 2020 00:00:00 GMT</pubDate>
      <description>Interactive 3D Pac-Man game in WebXR</description>
      <category>3D</category>
      <category>Three.js</category>
      <category>Creative coding</category>
      <category>WebXR</category>
    </item>
    <item>
      <title>Touchless interactions</title>
      <link>https://charliegerard.dev/projects/soli</link>
      <guid isPermaLink="true">https://charliegerard.dev/projects/soli</guid>
      <pubDate>Wed, 01 Jan 2020 00:00:00 GMT</pubDate>
      <description>Zooming &amp; navigating a map with hand gestures</description>
      <category>3D</category>
      <category>Creative coding</category>
      <category>Motion control</category>
      <category>HCI</category>
    </item>
    <item>
      <title>Mind-controlled Dino game</title>
      <link>https://charliegerard.dev/projects/notion-dino</link>
      <guid isPermaLink="true">https://charliegerard.dev/projects/notion-dino</guid>
      <pubDate>Wed, 01 Jan 2020 00:00:00 GMT</pubDate>
      <description>Chrome's Dino game controlled by thoughts</description>
      <category>Hardware</category>
      <category>Creative coding</category>
      <category>Mind control</category>
      <category>HCI</category>
    </item>
    <item>
      <title>ZoomZoom</title>
      <link>https://charliegerard.dev/projects/zoomzoom</link>
      <guid isPermaLink="true">https://charliegerard.dev/projects/zoomzoom</guid>
      <pubDate>Wed, 01 Jan 2020 00:00:00 GMT</pubDate>
      <description>Control the zoom level by lifting your eyebrows</description>
      <category>WebAI</category>
      <category>HCI</category>
      <category>Creative coding</category>
      <category>Tf.js</category>
    </item>
    <item>
      <title>Qua*run*tine</title>
      <link>https://charliegerard.dev/projects/quaruntine</link>
      <guid isPermaLink="true">https://charliegerard.dev/projects/quaruntine</guid>
      <pubDate>Wed, 01 Jan 2020 00:00:00 GMT</pubDate>
      <description>Keep running to explore digital trails using motion control</description>
      <category>WebAI</category>
      <category>Motion control</category>
      <category>HCI</category>
      <category>Creative coding</category>
      <category>Tf.js</category>
    </item>
    <item>
      <title>Thought-controlled game</title>
      <link>https://charliegerard.dev/projects/thought-controlled-game</link>
      <guid isPermaLink="true">https://charliegerard.dev/projects/thought-controlled-game</guid>
      <pubDate>Wed, 01 Jan 2020 00:00:00 GMT</pubDate>
      <description>Thought-controlled Street Fighter prototype</description>
      <category>Mind control</category>
      <category>HCI</category>
      <category>Creative coding</category>
    </item>
    <item>
      <title>Rainbrow</title>
      <link>https://charliegerard.dev/projects/rainbrow</link>
      <guid isPermaLink="true">https://charliegerard.dev/projects/rainbrow</guid>
      <pubDate>Wed, 01 Jan 2020 00:00:00 GMT</pubDate>
      <description>Imitate emojis to play a clone of the iOS game Rainbrow</description>
      <category>WebAI</category>
      <category>Motion control</category>
      <category>HCI</category>
      <category>Creative coding</category>
    </item>
    <item>
      <title>Acoustic activity recognition</title>
      <link>https://charliegerard.dev/projects/acoustic-activity-recognition</link>
      <guid isPermaLink="true">https://charliegerard.dev/projects/acoustic-activity-recognition</guid>
      <pubDate>Wed, 01 Jan 2020 00:00:00 GMT</pubDate>
      <description>Use ML to recognise human activities based on sound data</description>
      <category>WebAI</category>
      <category>Audio</category>
      <category>HCI</category>
      <category>Creative coding</category>
      <category>Tf.js</category>
    </item>
    <item>
      <title>Beat Pose</title>
      <link>https://charliegerard.dev/projects/beat-pose</link>
      <guid isPermaLink="true">https://charliegerard.dev/projects/beat-pose</guid>
      <pubDate>Tue, 01 Jan 2019 00:00:00 GMT</pubDate>
      <description>Clone of Beat Saber but in the browser and with your hands</description>
      <category>WebAI</category>
      <category>Motion control</category>
      <category>HCI</category>
      <category>Creative coding</category>
      <category>Tf.js</category>
    </item>
    <item>
      <title>Textile interfaces</title>
      <link>https://charliegerard.dev/projects/textile-interface</link>
      <guid isPermaLink="true">https://charliegerard.dev/projects/textile-interface</guid>
      <pubDate>Tue, 01 Jan 2019 00:00:00 GMT</pubDate>
      <description>Interact with interfaces by touching conductive textile</description>
      <category>Hardware</category>
      <category>HCI</category>
      <category>Textile</category>
    </item>
    <item>
      <title>Street Figther ML</title>
      <link>https://charliegerard.dev/projects/street-fighter-ml</link>
      <guid isPermaLink="true">https://charliegerard.dev/projects/street-fighter-ml</guid>
      <pubDate>Tue, 01 Jan 2019 00:00:00 GMT</pubDate>
      <description>Interact with a Street Fighter game with real body movements</description>
      <category>WebAI</category>
      <category>Motion control</category>
      <category>HCI</category>
      <category>Creative coding</category>
      <category>Tf.js</category>
    </item>
    <item>
      <title>HVBRD</title>
      <link>https://charliegerard.dev/projects/hvbrd</link>
      <guid isPermaLink="true">https://charliegerard.dev/projects/hvbrd</guid>
      <pubDate>Tue, 01 Jan 2019 00:00:00 GMT</pubDate>
      <description>Ride a real skateboard to play this hoverboard game</description>
      <category>Motion control</category>
      <category>HCI</category>
      <category>Creative coding</category>
      <category>Hardware</category>
    </item>
    <item>
      <title>Windows equaliser</title>
      <link>https://charliegerard.dev/projects/windows-equaliser</link>
      <guid isPermaLink="true">https://charliegerard.dev/projects/windows-equaliser</guid>
      <pubDate>Tue, 01 Jan 2019 00:00:00 GMT</pubDate>
      <description>Music visualization using browser popup windows</description>
      <category>Creative coding</category>
    </item>
    <item>
      <title>Daydream node</title>
      <link>https://charliegerard.dev/projects/daydream-node</link>
      <guid isPermaLink="true">https://charliegerard.dev/projects/daydream-node</guid>
      <pubDate>Tue, 01 Jan 2019 00:00:00 GMT</pubDate>
      <description>Access data from the Daydream controller in Node.js</description>
      <category>Creative coding</category>
      <category>Hardware</category>
      <category>Node.js</category>
    </item>
    <item>
      <title>Tfjs recycling</title>
      <link>https://charliegerard.dev/projects/tfjs-recycling</link>
      <guid isPermaLink="true">https://charliegerard.dev/projects/tfjs-recycling</guid>
      <pubDate>Tue, 01 Jan 2019 00:00:00 GMT</pubDate>
      <description>Use live image recognition to get better at recycling</description>
      <category>Tf.js</category>
      <category>WebAI</category>
    </item>
    <item>
      <title>Teachable keyboard</title>
      <link>https://charliegerard.dev/projects/teachable-keyboard</link>
      <guid isPermaLink="true">https://charliegerard.dev/projects/teachable-keyboard</guid>
      <pubDate>Tue, 01 Jan 2019 00:00:00 GMT</pubDate>
      <description>Tilt your head to interact with a keyboard and write a message</description>
      <category>Creative coding</category>
      <category>WebAI</category>
      <category>Motion control</category>
      <category>Tf.js</category>
      <category>HCI</category>
    </item>
    <item>
      <title>Willy detector</title>
      <link>https://charliegerard.dev/projects/willy-detector</link>
      <guid isPermaLink="true">https://charliegerard.dev/projects/willy-detector</guid>
      <pubDate>Tue, 01 Jan 2019 00:00:00 GMT</pubDate>
      <description>Because people can't be trusted. Use ML to detect drawn willies.</description>
      <category>Creative coding</category>
      <category>WebAI</category>
      <category>Tf.js</category>
    </item>
    <item>
      <title>Hidden</title>
      <link>https://charliegerard.dev/projects/hidden</link>
      <guid isPermaLink="true">https://charliegerard.dev/projects/hidden</guid>
      <pubDate>Tue, 01 Jan 2019 00:00:00 GMT</pubDate>
      <description>Small JavaScript library for web accessibility issues</description>
      <category>Creative coding</category>
      <category>Accessibility</category>
    </item>
    <item>
      <title>Speak - extension</title>
      <link>https://charliegerard.dev/projects/speak</link>
      <guid isPermaLink="true">https://charliegerard.dev/projects/speak</guid>
      <pubDate>Tue, 01 Jan 2019 00:00:00 GMT</pubDate>
      <description>Chrome extension for live captioning using speech recognition</description>
      <category>Chrome extension</category>
    </item>
    <item>
      <title>Epoc.js</title>
      <link>https://charliegerard.dev/projects/epocjs</link>
      <guid isPermaLink="true">https://charliegerard.dev/projects/epocjs</guid>
      <pubDate>Mon, 01 Jan 2018 00:00:00 GMT</pubDate>
      <description>JavaScript framework to interact with the Emotiv</description>
      <category>Creative coding</category>
      <category>Three.js</category>
      <category>Mind control</category>
      <category>Web Sockets</category>
      <category>HCI</category>
    </item>
    <item>
      <title>Myo web bluetooth.js</title>
      <link>https://charliegerard.dev/projects/myo-webbluetooth</link>
      <guid isPermaLink="true">https://charliegerard.dev/projects/myo-webbluetooth</guid>
      <pubDate>Sun, 01 Jan 2017 00:00:00 GMT</pubDate>
      <description>JavaScript library to use the Myo armband with Web Bluetooth</description>
      <category>Hardware</category>
      <category>Motion control</category>
      <category>HCI</category>
    </item>
    <item>
      <title>Browser pong</title>
      <link>https://charliegerard.dev/projects/browser-pong</link>
      <guid isPermaLink="true">https://charliegerard.dev/projects/browser-pong</guid>
      <pubDate>Fri, 01 Jan 2016 00:00:00 GMT</pubDate>
      <description>Play a version of the Pong game with browser popup windows</description>
      <category>Creative coding</category>
    </item>
  </channel>
</rss>
