Matt Biddulph’s virtual 3D printer

Matt Biddulph, the brains behind the Second Life Flickr screen and the Last.fm BBC Radio 6 hack (which I mentioned here on Eightbar a while ago), has come up with something even cooler. By way of introduction he points out that…

Many people find the creation of 3D models in SL to be rather tricky. This is because there’s no built-in way to import polygon data as a mesh of 3D coordinates from an external modelling tool. Imagine if there was a factory object that could read a list of coordinates and spit out the results straight into the world, like a virtual 3D printer.

First of all, I love the virtual 3D printer analogy. What Matt seems to propose is automatic creation of primitive objects, such as those used in POV-Ray or Second Life, from arbitrary 3D data. Doing this efficiently is pretty much the unsolved problem in this space at the moment, as nicely summarised by Troy McLuhan in a comment on a 3pointD post earlier this year.

This is something the Prim.Blender project can’t do, requiring you to build with SL-aware prims within Blender instead. My SketchUp hack gets very slightly closer, but in a very crude and limited way (so crude and limited it is still not publicly available, despite having been Slashdotted).

It looks like Matt already has something working. I can’t wait to learn more about this.

11 thoughts on “Matt Biddulph’s virtual 3D printer

  1. More details to come once I’ve got the code a little more stable, but I should make clear that my code uses the existing prim types rather than finding a way to create new ones. It’s based on using meshes that are decomposed into 3d triangles, and using carefully calculated operations on flattened and sheared box prims to form those triangles.

  2. Yeah, after looking at what he’s got going there, I’m gonna agree with Csven and say this has already been done, at the very least more than a year ago.

  3. Thanks csven (and Rez). I look forward to seeing if what Matt is working on goes beyond Jeffrey’s project at all.

  4. Using polygons has the benefit of being to import almost any 3d format, but its doubtful whether its actually of any use in SL because is such an ineffecient use of high level prims (unless SL will implements a prim type analogous to some kind of poly mesh)

    I did something inspired by your Sketchup hack too, although instead of using polygons, i used higher level SL primitives (cube, sphere, cylinder ect) drawn from a component library in Sketchup. A ruby script in Sketchup exports it to a text file in a very simple format (prim type, position, scale, rotation, color), and its imported in SL using a script that reads it from a notecard. It works really well, and Sketchup is a great way of mocking up a model and getting the initial dimensions right. Watching the script construct your objects is a lot of fun too (the “3d printer”).

    It struck me then, you could write something very similar for things like Lego Models (designed with LegoCAD or LDraw or other tools) or Anker Building Blocks (AnkerCAD), because those high level entities would translate easily into SL prims or objects.

    I had a lot of fun writing it, and perhaps one day, ill write it up and make it available on a web page 🙂 Ultimately though, i think prim.blender is much much better, since it has full support for all the SL primitives and their settings. The Sketchup component library im using is also pretty basic, and Sketchup will never be able to support settings like “sheer” or “hollow” at design time.

  5. Hi Wilfred. I’m tending to agree with you on SketchUp’s limitations. Based on the limitations I’ve found with trying to get SketchUp to automatically export arbitrary (and, given the power of SketchUp, potentially very complex) shapes to SL prims your Prim.SketchUp approach (if I may cheekily call it that) sounds like it might be a good one.

    The nice thing about the LDraw format is that it’s is widely used by Lego CAD tools out there (including LeoCAD, MLCad, …) and is really easy to parse. It’s funny you should mention it, as it was my experiments with LDraw that made me start experimenting with SketchUp. I do actually have a basic LDraw 3D printer working, albeit with an inventory which currently only supports 2×2 and 2×4 bricks. I must complete and share this so that people can add their own elements to the inventory.

  6. I like the idea of a “3D Printer”. I think we’ve definitely gotten close to that with the creation of second life. I may be going a bit off topic but second life seems like the perfect environment to make prototypes of 3D Architectural Renderings. Perhaps if the graphics of second life were more up to par, then it would be a realistic product to use for publishing or showing architectural renderings.

Comments are closed.