A vectorized pixel-art picture of Max Glenister Max Glenister

About Work Blog Now VR RSS Feed icon

  • 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
    20 Feb 2023
  • 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...
    dataguide
    31 Jan 2023
  • Using a Raspberry Pi to Host a local Visual Studio Code Server: I tend to work on this blog from multiple machines in my home. These include a desktop PC running Windows, a MacBook Pro running macOS, and a Chromebook with the...
    rpiguide
    26 May 2022
  • 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...
    indiewebguide
    05 May 2022
  • Installing Chrome OS on a Late 2009 MacBook: I’ve got an old 2009 MacBook 6,1 (A1342) kicking about in my office that I’ve been playing with on and off lately.
    tech
    22 Apr 2022
  • 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
    08 Apr 2022
  • 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
    28 Mar 2022
  • 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
    08 Mar 2022
  • 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
    10 Nov 2021
  • 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
    29 Sep 2021
  • 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
    27 Jul 2021
  • 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
    19 Feb 2021
  • 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
    03 Feb 2021
  • 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
    26 Jan 2021
  • 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
    10 Feb 2019
  • 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
    22 Aug 2017
  • 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
    16 Aug 2017
  • 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
    02 Aug 2017
  • 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
    24 Apr 2017
  • 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
    02 Apr 2017
  • 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
    03 Mar 2017
  • 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
    31 Oct 2016
  • 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
    30 Oct 2016
  • 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
    29 Oct 2016
  • 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
    28 Oct 2016
  • 27: Moving with gaze: Today’s hack is more an aside while I’m focussing on yet another Tevris rewrite.
    vrcardboctober
    27 Oct 2016
  • 26: Rotating Pieces: For today’s Cardboctober we’re still working with Tetris. The task today is to make the pieces rotate.
    vrcardboctober
    26 Oct 2016
  • 25: Creating and Moving Pieces: Today we’re going to be looking at creating Tetromino pieces and moving them around the board.
    vrcardboctober
    25 Oct 2016
  • 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
    24 Oct 2016
  • 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
    23 Oct 2016
  • 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
    22 Oct 2016
  • 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
    21 Oct 2016
  • 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
    20 Oct 2016
  • 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
    19 Oct 2016
  • 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
    18 Oct 2016
  • 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
    17 Oct 2016
  • 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
    16 Oct 2016
  • 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
    15 Oct 2016
  • 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
    14 Oct 2016
  • 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
    13 Oct 2016
  • 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
    12 Oct 2016
  • 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
    11 Oct 2016
  • 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
    10 Oct 2016
  • 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
    09 Oct 2016
  • 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
    08 Oct 2016
  • 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
    07 Oct 2016
  • 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
    06 Oct 2016
  • 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
    05 Oct 2016
  • 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
    04 Oct 2016
  • 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
    03 Oct 2016
  • 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
    02 Oct 2016
  • 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
    01 Oct 2016
  • 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
    29 Sep 2016
  • 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...
    vrhackday
    24 Jul 2016
  • 20 Minutes into the Future with Google Cardboard and JavaScript: I gave this talk at JS Oxford in November 2015. The talk is about using JavaScript and various web APIs to create Google Cardboard experiences.
    vrtalk
    18 Nov 2015
  • 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
    30 Oct 2015
  • 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
    30 Jul 2015
  • 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
    30 Jul 2015
  • 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...
    11 Jun 2015
  • 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
    03 Jun 2015
  • 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
    28 Nov 2014
  • 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...
    hackday
    03 Jul 2014
  • Compressing PDF files from your Mac or Linux terminal with Ghostscript: I arrived at this solution recently when looking to compress a massive print-quality PDF for the web. If you search for “compressing pdf files on mac” you’ll get lots of...
    guide
    28 Mar 2014
  • 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
    19 Jan 2014
  • 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...
    article
    16 Jan 2014
  • SusHack #1: Building the foundations of the Oxford Flood Network Stack: This past weekend I held my first hack day. This is a recollection of why/how SusHack came to be, and how the day went.
    hackday
    05 Nov 2013
  • 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
    14 Aug 2013
  • 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:...
    article
    12 Apr 2012
View more

Looking for even more? I recently had a Spring clean and archived a bunch of old posts. You can find the raw posts in the Archive on Github


A vectorized pixel-art picture of Max Glenister

Max Glenister is a Front-end Developer based in Oxfordshire. For work he spends his time designing, validating and implementing user interfaces. For fun he tinkers with Virtual Reality, 3D printing, embedded systems, game development and many other things.

You can keep up with Max on MastodonGithubRedditDiscord


© 2010—2024 Max Glenister. Licensed under CC BY-NC-SA.
Website last built: 28 August 2024

← 🕸💍 →