The end of Dingoonity: If you were familiar with Dingoonity, you might have noticed by now that I’ve made the decision to shut down the website.
Dingoonity
The Movies I Watched in 2022: Through 2022 I kept track of most the movies I watched. In this post I’ll talk about how I took that data and, combined with the OMDb API, used the...
A Bit of a Bodge To Make MASSIVE Emoji: I’ve been fiddling with an instance of Known over on social.omgmog.net. As part of my fiddling I’ve been trying out some of the plugins for Known. I came across the...
Adding support for Webmentions: I’ve added Webmention support to the posts on this blog. Webmentions are a method for websites to know that they’ve been linked to (or mentioned) from elsewhere on the web....
indieweb
DevTerm Stuff: I helped crowdfund the DevTerm from ClockworkPi back in November 2020 and it arrived in January 2022. It’s a nice device, but it’s not perfect. Here’s some of the mods...
cpi
The Inevitable Oculus Quest Post: I sold my HTC Vive back in 2020 and bought an Oculus Quest. Was it an impulsive lockdown treat? Perhaps; but it was time for an upgrade. I went for...
vr
Adding an internal speaker to the Pocket CHIP: The Pocket CHIP doesn’t come with internal speakers. It has the GPIO pins for audio, but nothing is hooked up. On the CHIP itself there is a 3.5mm audio jack...
chip
Adding Global Volume Control to the Pocket CHIP: I’ve been gradually adding internal speakers to each of my Pocket CHIPs lately and found it cumbersome to have to either open alsamixer or use the volume control page in...
chip
GameShell Stuff: I bought a ClockworkPi GameShell back in October 2019. I’ve been playing with it a bit lately (in anticipation of the ClockworkPi DevTerm shipping!) and I realised I haven’t yet...
cpi
The Raspberry Pi Pico and the Pimoroni Pico RGB Keypad: In January the Raspberry Pi Pico was announced. The Pico is a RP2040 microcontroller featuring a dual-core Arm Cortex-M0+ processor with 264KB internal RAM and support for up to 16MB...
rpi
CHIP Stuff: This page is a changing document. I’ll probably add more notes to it in the future. These are just some notes that I’ve put together in the past about flashing...
chip
Using ORCA with FluidSynth on the Pocket CHIP: This post is about using the ORCA livecoding playground on the Pocket CHIP From the ORCA wiki: Orca is a two-dimensional esoteric programming language in which every letter of the...
chip
Pico-8 on the Raspberry Pi with Game HAT: I’ve been playing with Pico-8 a lot lately. I’ve got a small Pico-8 project site to launch soon, but in the mean time I’m more occupied with getting Pico-8 running...
rpi
The Deepoon DPVR E3 Virtual Reality Headset: Today I’m reviewing the DPVR E3. This is a Virtual Reality headset with a high resolution display, comfortable straps and an experience that’s similar to the Oculus Rift.
vrreview
The Virtoba S1 Daydream VR Bluetooth Controller: The Virtoba S1 is a Daydream compatible controller from China that costs around £15 ($20). Let me just start with saying I’ve got a lot of cheap Bluetooth controllers –...
vrreview
My workflow for discovering new VR content: Since launching the UX of VR website last year I’ve been looking for ways to keep on top of new VR content. For most of the last year I relied...
vr
The GPD Pocket Ultra-mobile PC UMPC Laptop: The GPD Pocket is a 7” Ultra-mobile PC that at first glance resembles a shrunken Apple Laptop, but it’s metal unibody exterior is where the similarities end.
review
The inevitable HTC Vive post: I bought an HTC Vive last November (a week before the Black Friday sales, doh!) and have spent the time since trying to get the most out of it. So...
vr
Well that has been a crazy couple of months... Onward!: In October 2016 I spent every day of the month creating something for Google Cardboard using JavaScript — Cardboctober. Since then I’ve been preoccupied with a couple of other mostly...
vr
31: Something in the Shadows: Today is the last day of Cardboctober! And less surprisingly, it’s also Halloween 🎃 - For today’s hack I’ve made something spooky. If you don’t like spiders, you should look...
vrcardboctober
30: Github Contributions: For today’s Cardboctober, having shed the burden of creating Tetris in VR, I decided to hack around with data visualisation.
vrcardboctober
29: Blocks out of the pram: Bit of a lame one for today. I feel like I’ve not been making much progress with the Tetris rewrite, and tackling collision detection with unexpected results is getting quite...
vrcardboctober
28: Planning Revisited: I thought it’d be weird to drop a hardware post in this week as I’ve not finished the Tevris game yet, so this week’s post will continue the Tetris theme...
vrcardboctober
27: Moving with gaze: Today’s hack is more an aside while I’m focussing on yet another Tevris rewrite.
vrcardboctober
26: Rotating Pieces: For today’s Cardboctober we’re still working with Tetris. The task today is to make the pieces rotate.
vrcardboctober
25: Creating and Moving Pieces: Today we’re going to be looking at creating Tetromino pieces and moving them around the board.
vrcardboctober
24: Basic Game Board: For today’s hack we’re going to start putting the teVRis game board together. We’ve already looked at positioning objects in a circle around the camera, but that doesn’t solve the...
vrcardboctober
23: Planning Tetrominoes in VR: I outlined the plan for the week yesterday: To make a tetromino game. So here’s how we’re going to do that.
vrcardboctober
22: Putting it all together: We’re starting the final (full) week of Cardboctober now, so I thought I’d do a week-long project to pull together some of the ideas from Cardboctober.
vrcardboctober
21: One size doesn't fit all: An important factor in whether VR works for you or not is how well the hardware fits – both in terms of fitting your head shape and being aligned with...
vrcardboctober
20: Which way is North? Part 2: In yesterday’s post I talked about the problem of using Cardinal North with device orientation, and how Three.js’ Device Orientation Camera provides a utility function for setting the alphaOffsetAngle, today...
vrcardboctober
19: Which way is North? Part 1: When developing for Google Cardboard VR with JavaScript we’re depending on the browser’s support of device orientation to know which way the user is looking. You can’t guarantee the user...
vrcardboctober
18: Moving around in VR: Unless your VR experience is a roller coaster or some other sort of rail-based experience, you shouldn’t take movement control away from the user. Lack of movement control can cause...
vrcardboctober
17: Displaying Pertinent Information: Some Cardboard experiences might require pertinent information to always be visible to the user. As we’re working with a stereoscopic and not particularly high resolution screen this raises a couple...
vrcardboctober
16: Getting in and out of Fullscreen: Today we’re looking at the task of getting in and out of Fullscreen. Fullscreen helps maintain an immersive experience. When using JavaScript as we’re confined to the capabilities of the...
vrcardboctober
15: The Hierarchy of Needs in Quick Google Cardboard Hacks: This week I’m going to be writing about some of the UX challenges encountered while creating Cardboctober hacks. In VR experiences it’s important to consider the needs of the person...
vrcardboctober
14: Debugging your Cardboard with Chrome: Today I’m going to be talking about how I test and debug while working on this Cardboctober hacks. If you make it to the end I’ll have a recap of...
vrcardboctober
13: AAAAH! More Zombies: For today’s hack I’m revisiting yesterday’s zombie game again. With a full re-write to un-bodge the implementation.
vrcardboctober
12: AAAAH! Zombies: Today’s hack was going to be built around the gamepad API – but I utterly failed to get it working nicely with any of my USB or Bluetooth controllers. Not...
vrcardboctober
11: Webaudio Beat Sequencer: For today’s hack I’ve decided to make a VR beat sequencer. Nothing says inclusive-fun like a VR experience that makes noise! So let’s get on with that.
vrcardboctober
10: HTML5 Video: Today we’re looking at HTML5 video – well not in the traditional sense. We’re looking at using the <video> element to create a texture and then applying it to an...
vrcardboctober
09: Speech recognition: Today’s hack is using the speechRecognition API. How can this be useful in Google Cardboard VR? It can add another level of input to our limited arsenal. So let’s take...
vrcardboctober
08: Playing sounds: Kicking off Cardboctober week 2 (in which I’ll be talking about using various Web APIs) today we’re looking at audio. Or more specifically how to get audio in to your...
vrcardboctober
07: Cardboard hardware (cardware?): Today’s hack (and each Friday for the rest of October) is going to be hardware rather than software themed. If you get all the way to the end of the...
vrcardboctober
06: VR Pairs Game: Todays hack is intended more as an activity to pull together various bits from the first week of Cardboctober and make a game. So here we go, it’s a “pairs”...
vrcardboctober
05: Loading external models: Using a couple of Three.js plugins you can load external models in to your scene. The plugins are: OBJLoader.js MTLLoader.js OBJLoader lets you load .obj format models, and MTLLoader lets...
vrcardboctober
04: Skyboxes and generating meshes: Skyboxes There are a couple of ways you can create a skybox in Three.js Using a skydome (a textured sphere) Using a skybox (a textured cube) I’m using the textured...
vrcardboctober
03: Even better gazed based look interaction: Improving on yesterday’s Raycaster based look interaction, I’ve improved the raycasting experience.
I’m using a library called vreticle.js, though I’ve tweaked it a bit.
vrcardboctober
02: Raycaster based look interaction: For today’s Cardboctober hack I’m doing some basic look interaction.
As you look at each ghost in the circle surrounding you the ghost will cover their eyes.
vrcardboctober
01: Basic VR: Kicking off Cardboctober I’ve decided to go with something very simple. This is actually pretty much one of the JSCard demos that I created last November for my 20 Minutes...
vrcardboctober
Announcing Cardboctober: Throughout October Ben and I are working on a project called Cardboctober. The challenge is hacking on something new every day using Google Cardboard.
vrcardboctober
Summer of Hacks: Game Dev Day: As part of the JS Oxford-organised Summer of Hacks, I co-organised the “Game Dev Day” hack day in Oxford. This is the second time I’ve held an event during the...
UX in Virtual Reality: I’ve been trying to find resources on the subject of User Experience and User Interface design in Virtual Reality a lot lately, as I’m thinking about Google Cardboard, and preparing...
vr
Creating an icon font: I’ve recently been doing a lot of working designing an icon font that works well at small sizes for my day job. Here’s an overview of the process I’m using...
guide
Launching Sketch Toolbox from inside Sketch: I’ve been making use of Sketch a lot lately. One of the coolest features of Sketch is it’s plugin support. I’m using a tool called Sketch Toolbox to manage plugins...
guide
My face and words in print: Recently I was contacted to provide a short quote about why CSS preprocessors are awesome. This wasn’t a hard task as I spend a lot of time evangelising the use...
The Revo K101 Plus Portable Games Console: Today I’m refreshed to be reviewing a console that doesn’t try to cram too much in to the form factor, but instead tried to focus on doing one thing well....
review
So you want to organise a hack day?: These are based on my experience of organising SusHack in 2013 and 2014. For more information about SusHack, check out https://sushack.github.io
article
SusHack #2: This past weekend was the second SusHack. Following on from the success of the first SusHack there was some demand for a second one, so a little later than planned...
Getting started with using Sass in your existing website: Sass is a CSS-compatible preprocessor for CSS. It allows you to reduce the amount of duplication and complexity in your CSS by using variables, mixins (functions), nesting, and other cool...
guide
On the subject of "Pixel-perfect PSD to HTML/CSS": I read an article on the subject of implementing a PSD design of a website perfectly in HTML/CSS, and without wanting to spend my time writing a lengthy response in...
Converting SVG to PNG online and in your terminal: This post is mostly for my own benefit on the rare occasion that I have to convert SVG files to PNG. I always spend a large amount of time looking...
guide
On scrolling: Scrolling on the web is something that we take for granted when thinking about how users will interact with our website. There are two schools of thought on the subject:...