How to build a holodeck, week 27

Moar holiday! and a start on implementing a C# version of Chisel.

No cool videos to show this week. I’ve spent just over a day doing holodeck related things, and the primary thing occupying my time has been doing a port of OpenChisel to C#.

Building a mesh from a point cloud is one of the key areas of capturing reality - most of the other methods use some form of photogrammetry processing, which is also an area I’d like to fully understand, but Chisel is a great starting place for me to knock up my own implementation, as there’s source out there (OpenChisel) that I can use as a basis for building my own. So, the next week or two will be doing an initial functional port (hopefully!) of OpenChisel, and then seeing where I can take it.

Why re-write something that is already functional? Mostly as a learning exercise, as I want to ensure that I’m not missing a trick with the voxel representation - which from my initial digging looks pretty simple, the 3-vector int coords of the course-grid voxels are used as a unique hash in a container - I assumed it would be something super-optimal, but no magic there so far. The voxel carving is going to be interesting to grok.

There’s two different use cases here that I’d like to explore - realtime dynamic meshes (i.e. people and stuff, moving things, where there’s no persistence) and static meshes like environments, where nothing moves but large-scale accuracy is required (and things like drift correction and loop closure become much more relevant).

I’ve done a few stabs at my own meshing previously, but it’s hard to visualise, hard to draw (2D does not represent 3D adequately!) and the best example is working code. Given that my next goal is to get multiple depth feeds from multiple devices and generate a mesh from the result (and ideally multiple texture feeds to project onto the resulting mesh), having my own source for this stuff will be really useful to me.

Lots of work ahead - this is at least a few weeks worth of effort before I get anything cool out the other side (man weeks, not calendar weeks).

One more week of school holidays, and then back to it properly! Don’t expect much cool stuff next week ;)

Written on August 28, 2016