Investigations into 3D Worlds

Sep 6, 2014

Jonathan Linowes
Things I Did and Learned Today
4 min readOct 12, 2014

--

In anticipation of receiving my Oculus Rift beta headset and doing some serous 3D hacking this fall, I’ve started investigating and learning modern 3D development tools, devices, and platforms.

Last spring, Facebook bought a 2 year old company with no product and no revenues for $2 billion, Oculus, which is developing a virtual reality headset (oversized goggles) that gives you a 3D view of computer generated animated worlds. I say animated, but anyone who’s seen today’s video games knows these can be quite realistic looking (and/or include actual real video). So what was this all about? What is Zuckerberg’s vision? He discusses it here. Sounds like my cup of tea.

Many moons ago, as the old Indian chief might say, in my first decade as an adult, I was heavily invested in 3D computer graphics software development. I majored in CG in college. My first couple jobs was building 3D graphics applications for CAD (computer aided design) and geopetroleum exploration. I quit that and started a company that built a series of software products on my own 3D graphics engine, then sold the business to a major 3D software company, AutoDesk.

Then the web happened, and I spent the next 20 years working in the 2D world wide web ☺ (Video games notwithstanding; my nostalgic favorite is still Super Mario 64 while my older kids go for GTA and Call of Duty).

So I’ve decided to hit my own Re-start button.

In June I pre-ordered a development version of Oculus Rift 2. It should be arriving any day now.

In anticpation, I replaced my 5 year old iMac with a sleek new one that can handle video and 3D rendering. It’s a mid-high end model, with 3.5GHz Quad-core i7 processor, 16GB RAM, and 512GB Flash SSD storage; and NVIDIA GeForce GTX with 4GB graphics RAM. Woot! The iMac arrived promptly on August 21.

I downloaded a free copy of the Unity 3D game development engine (one that Oculus recommends for compatibility), and spent a couple weekends studying their tutorials and building example game projects. They give you the 3D assets, textures, animations, sound clips, etc, and you put them together in a 3D space, program some behaviors, and write some control scripts. Fun fun fun! As long as you follow along exactly, it all works ☺

Next I wantedto go off the rails a bit. I’m curious about importing my own models in thegame. I contacted Jarrett, my son who is a Mechanical Engineering major at the University of New Hampshire. He is certified in SolidWorks and is working on an internship for unmanned underwater vehicles (UUV). He has some CAD models of their vehicles.

There are many 3D file formats. Unity’s native file format is FBX. An industry standard file exchange format (Collada) is DAE. Today’s 3D printers take the STL file format, and there are sites like MakerBot Thingiverse that let people download models in this format.

We found a SolidWorks plugin that exports models directly to FBX. It costs $$$ but comes with a 30-day free trial. Jarrett exported his model and sent it to me. The only problem, its 200MB.

I found and installed a free 3D editor, MeshLab, which let me remove details (like nuts and bolts!) from the model, we don’t need to render the innerds of the vehicle, just enough to look good in the game. I removed parts, and resaved it. Since the app supports a lot of different file types for import and export, it can also be used for file conversions.

I imported them UUV model into the game. Initially it appeared 100X larger than the game! With a bit of fiddling, and relative size adjustments it looks pretty decent. The imported models are still way too detailed, the game renderer runs pretty suggishly. But hey, the concept works. I’ve left it up on my Dropbox if you want to try it.

Next, I wanted to try my hand at some 3D input controls. We have an XBOX with Kinect. The kids use it occationally (rarely occationally) for some dancing games). Microsoft’s own development tools work only on Windows (no surprise there, but kind of stupid). There’s also an Open Kinect project if I want to dive deeper into it. I found a blog post on how to hook it up to a Mac. Pretty cool, it actually works.

That’s it for now. I’ve also been researching some wearable sensors that could be used while jumping around with the Oculus headset on. Most of these are Kickstarter stage so I wont be holding my breath. More later. See ya!

Originally published at vaporbase.com.

--

--