Monthly Archives: April 2011

Vertex and face data structures in Wings3d

I could not find this information clearly stated anywhere else, so for the record, I will describe the Wings3d vertex and face data structures here. I did find some useful information about datastructures in this post on How To Write Wings3D Plugins (for beginners), but it was not complete. Note, I am NOT describing the winged edge data structure. That is something else which Wings3d uses internally to represent geometry data.

  • vertex: a triple of real numbers, {X, Y, Z}. When building a shape in a plugin, the vertices of the shape are enumerated in a list. Note, integers are not acceptable. Coordinates must be expressed as floating point numbers, e.g. 0.0 instead of 0.
  • face: a list of indexes of vertices in a vertex list. Vertexes must be enumerated ANTICLOCKWISE when viewed from OUTSIDE the constructed shape

A good concrete example is given by the code for constructing a cube:

Faces = [[0,3,2,1],[2,3,7,6],[0,4,7,3],[1,2,6,5],[4,5,6,7],[0,1,5,4]],
Vertices = [{-Xi,-Yi,Zi},{-Xi,Yi,Zi},{Xi,Yi,Zi},{Xi,-Yi,Zi},
{-Xi,-Yi,-Zi},{-Xi,Yi,-Zi},{Xi,Yi,-Zi},{Xi,-Yi,-Zi}],

The first face, [0,3,2,1] is the front one in the following drawing:

wings3d face orientation
Front face of cube

Note the directions of the axes – if +Y is up and +X is right, then +Z is towards the viewer. If you get the direction of the Z axis wrong in your code, then all the normals will be flipped.

Letterhead: a 3D printed sculpture for word gamers

Yesterday, I was very excitedly waiting for the UPS truck to bring me my first 3D printed model. When it arrived, the box was surprisingly light. I opened it with a fair degree of trepidation, half expected a formless piece of plastic in place of the model I thought I had designed and printed. But no, it worked!

A photograph of the Letterhead model.
Letterhead, a 3D printed sculpture for the avid word gamer

As you can see, the figure has a letter tile for a head while their brain is held in their hand.

I have made a few small changes to the model since printing it, making the neck area less bulky and beefing up the upper arm a little. If you would like to print a copy, you can do that from the model’s page at Shapeways, Letterhead (Revision 1.0).

The model was designed mostly using Wings3D and touched up using Meshlab (Visual Computing Lab – ISTI – CNR), both excellent open source packages. Wings3D is written in Erlang, which is quite exciting.

I made this model in honour of my brother, Adam Lamprell, my arch-adversary at Lexulous. Adam, you are awesome.

Google Voice UX bleugh

I want to change a forwarding number in my Google Voice account. I go to Google Voice and it shows me my received voicemails and texts. This is OK. On the left edge of the page is a column of links for navigating some aspects of my Google Voice account. Um, nothing there for changing my profile or a forwarding number. Underneath the search bar near the top of the page is a row of buttons for performing actions on messages. Nothing there for me either. At the top of the page is a dropdown menu for switching accounts and configuring my GOOGLE account – but not my Google Voice account. Oh dear. Finally, I see the little gear in the very top right corner of the page. THAT one gives me a drop down menu for changing my Google Voice settings. Why do they make this so hard to find?