I like to make software that is fun and good looking.

December 10, 2014

SceneVR, multiuser 3D

SceneVR is my node.js + webgl project that lets you easily create 3d scenes that you can experience with multiple people at once. It uses node.js and websockets to provide a server. The server loads html-like scene descriptions and lets you script interactions, so that the scene can respond to people in the scene. The cool thing is, that everything is simulated on the server, so every connected client sees the same thing. This makes it easy to write multi-user experiences (games, demos, toys), just code it once in xml + javascript, and everyone can connect to it and play with it.

September 25, 2014

Herenow feature requests

I’ve been given a bunch of feedback on Herenow. I thought I’d make a blog post to list the main feature requests that my friends and other users have given me.

August 27, 2014

Working collision map on mapbox

So this is a total hack, but it works. Try it out. Basically, I’ve exported the json that represents the static polygons in the physics simulation, and hardcoded the translation functions to convert physics-space to world space. I also hacked up box2d to increase the maximum translation speed (I probably need to scale everything down to do it properly). I also made the streets too wide in the physics. I might go back and fix that. But yeah, you can get a feel for how the game engine might work, with being able to walk up and down streets and side streets. I think it could be a pretty cool game mechanic.

August 25, 2014

Physics simulation of Wellington

So I did a bit of work on Tuesday today, but also did a good afternoons work on my virtual tourist game. Here is the latest.

August 23, 2014

Walking physics

I’ve done some more work on trying to make a walking simulator on openstreetmap data. I used jsclipper to draw a big rectangle, then extruded the streetlines and cut them out of the rectangle, then turned the polygons into convex hulls and loaded them into box2d. See here for a demonstartion. The code is super ugly at the moment.

August 22, 2014

Mapbox GL walking game

I discovered mapbox gl for the web the other day. It’s an awesome library by mapbox that renders vector tiles in the browser using webgl. It’s super fast, and allows rotation of the map, which let me prototype something I’ve been trying to do for ages.

August 11, 2014

Deploying node.js apps

I’ve got a few node.js apps kicking around on my computer that I’ve been wanting to deploy for a while, but I’d never got around to it. Happily, I decided to try and deploy the asset-server.

August 08, 2014

AOC 4k Monitor

I bought one of the new AOC 4K Monitors (a u2868pqu). It’s a great monitor, and available for only $800 in New Zealand. I ordered mine from mightyape and it arrived the next day.

August 06, 2014

Oculus SDK and Three.js

At work today, I did a demo of some of the VR stuff I’ve been hacking on. It was pretty cool, everyone was way more interested in the 3D / VR stuff than they were in my other projects, which made me think that I need to get my shit together and release some of this stuff.

July 24, 2014

Physics, hulls and cannon.js

As part of my exploring metaverse stuff lately, I’ve been thinking of ways I could make some cash moneys off the technology I’ve built. One of the first ideas I’ve come across, is to make a walk-through visualizer for architectural models. So as well as providing a global metaverse where anyone can upload art, also have private workspaces where people can place models and walk through them with their clients.

July 23, 2014

My model uploader workflow

I’ve been doing quite a bit of work on metaverse.sh (there’s no site there are the moment) lately, trying to get the model uploader workflow going.

May 27, 2014

Herenow retrospective

I’ve been teaching myself mobile development for the past 6 months, and last week, I decided to put aside my full time project and instead try and build and release something quickly, to get experience with the whole app store submission process, and also to write an app with all the knowledge I’d gained over the previous 6 months (my previous project looks like a total nightmare).

May 20, 2014

With - Quantified Self App

So I’m getting closer to releasing With. I was reading DHHs post about hybrid apps, where you use native navigation and display content using webviews, and since it was slow going trying to write a purely native version of With, I decided to go hybrid.

May 13, 2014

Reddit metros

I think I’ve posted about this before, but having had a bit more experience building mobile apps, I think there’s a great opportunity to take the list of local reddits and build a customised app with a messageboard for each city. Basically replicate the post link, upvote/downvote, start conversations functionality that reddit provides on a city basis and make a customised app for your city that does this.

April 29, 2014

Better encounter detection

So I got as far as making a cool contoured terrain in WebGL before I decided that it was time to do a bit more work on With. I downloaded the latest database dump from Heroku and started doing some analysis. Where I got to last with With, is that I couldn’t reliably detect encounters between people, so I put it on the backburner while I worked on other stuff and talked to friends about was to better detect encounters.

April 17, 2014

Positional audio

A big part of the VR experience (especially in a headset like the oculus rift) is the ability to talk to other users. With the rift on, you can’t see the keyboard, and text overlays look a bit manky anyway (since DK1 is so low resolution), so being able to naturally talk to people is a great idea. So I’d like to have voice chat in my scene-server project.

April 11, 2014

Dom Mutators

What I’m envisaging for the scene server I’m working on at the moment, is a dom-like API that you can script against, and then changes to the world get reflected down to all the connected clients. So you’ve got something like this:

April 10, 2014

Parsing scene files using dom-lite

So, I went to Monterey with Rissa last night and drunk a few beers and had a hack at using dom-lite to provide a dom interface to my scene nodes. While I was working on it, I came across micro-dom which uses htmlparser2 to parse html and turn it into dom-lite nodes. So I decided to replace my handwritten scene parser with htmlparser2.

April 08, 2014

Tweening with obelisk

While working on the isometric viewer for mv-world, I added some basic tweening to obelisk using tween.js.

April 07, 2014

Using blender to convert models

So I got the world server working for my 3d world project. You can reliably connect from the client which is currently using obelisk.js to render an isometric overview of the world. I also added script element to the scene, so you can script an animation on the server, and it’ll get replicated out to all the connecting clients.