Thought Pieces

Keep doing your crappy little drawings (Staging XR scenes)

Some people create beautiful perspective illustrations to visualise and storyboard their virtual reality designs And it’s tempting to think you’re not a strong designer if you’re not doing that too…

Focal point blocking for XR media

Planning out a linear VR experience requires thinking about where the viewers attention might be. Thinking about the focal points…

Designing immersive experiences

In traditional cinema, TV, or even the more modern phone screen, there’s limited screen real-estate. But removing that limitation creates a design problem…

The future is not prompt engineered

Let’s not pretend the importance of prompt engineering is ubiquitous. The most prevalent power of generative AI is in the way it adapts to us, not the other way around…

The typography of dates, times, & filenames

A deep dive into carefully considered date formatting, line length and general typography attributes of filenames…

Loosening the Shackles of Rapid Authoring Tools

Rapid authoring tools like Articulate Storyline and Evolve Authoring make sharing projects possible across a team of non-programmers, but your design must often adapted to the limited range of possibilities the tool allows…
Bluesky
Threads
Twitter / X
Mastodon
Instagram

Projects

Technical Articles

useState values not updating in React

Certain closure combinations and asynchronous code can result in stale closures – where react state variables seem to not update in specific places…

View existing local storage

View existing local storage If you want to check all localStorage values for the current web page, there are a couple of ways. One way that I often find myself doing is running this little snippet of code. But it’s not the most accessible way. The reason I like the above bit of code is…

Make SVG shapes transform like Dom elements

Make SVG shapes transform like Dom elements For a previous article on this blog I found myself rotating an SVG shape using CSS. At which point I immediately realised that the usual way of shifting the origin of rotation to the centre worked differently for SVG shapes than it did for standard dom elements. For…

Styling SVGs with CSS

Styling SVGs with CSS When utilising SVGs in your HTML, you may find yourself inserting them using the img tag. This is nice and clean and keeps them formatted and styled in the same way as your other images However, this adds a limitation to your ability to dynamically style them. Html: If you’re working…

Prevent Vite doing a full reload

Vite’s auto refreshing can sometimes get in the way. Here’s a way to stop it…

Expo won’t connect to my physical device

React Native apps using Expo won’t connect to your physical device on locked down networks without tunnelling…

Define defaultProps near your props in JS

Most examples online define defaultProps after the class or function. Here’s why I define it before…

Creating a new filetype in Obsidian

Obsidian plugin development allows you to add support for new filetypes…

Extracting the extension from a filename string

Pulling the extension from a filename in javascript can be done in many ways. And it’s easy to do in a way that will create errors…