Home » Borg » Reductionistic 3D Part 2

Reductionistic 3D Part 2

Enter your email address to follow this blog and receive notifications of new posts by email.

Join 46 other followers

My father used to work on CAD systems at Orbital.

Now I admire my father, immensely.

He’d spent a lifetime doing 3d engineering designs on paper well before it was en-vogue, for companies such as Sperry avionics doing flight systems and for doing rocket design at Orbital.

But in 1988, he tried getting me into his line of work – Drafting and CAD design – with a visit to Devry, a reputable school for drafting in the Phoenix area to which I thoroughly and completely rejected.

I enjoyed computers. Had enjoyed them since I was 11. And while I couldn’t tell you for certain what I wanted my career to be, I knew it had something to do with computer programming and not computer aided design.

That is: At 18 I had already enjoyed the idea of being the man who made the computer aid design program work.

But I was lost with my career, and took a job with Orbital – where – within 18 months, I was offered a job within the software development department as a junior programmer.

My father and I are two different breeds.

I can imagine the models. Hell, I can imagine things that would drive most people insane and nearly has me on more occasions than I can count.

But my father.

He was at one time magnificent with creating amazingly detailed designs which could be translated to the real world with such magnificent precision.

He, in a literal sense of the world, designed rockets and flight systems for most modern aircraft.

And me.

He truly inspired.

I became the man who learned how to tell those aircraft and rockets how and where to fly.

One thing I learned on this bumpy road of life and understanding what he did was that any object is a series of interconnected points.

In the previous entry about reductionist 3d, I detailed a ‘software based object’ which retained those points.

But those points are (almost) completely meaningless without context.

Take for instance the code for the CPoint class I created the other day which contains the definition for a single point. I have made a modification to the class to make it quicker to create an instance of it (google ‘class instance’ if you don’t know what that means):


So with this object, I create a series of points – giving this class object ‘state’ through the following code, but learn real quickly there’s a shit ton of code I’m going to have to create just to draw points. Here’s the points necessary to draw a single flat plane as a for instance:


Let’s see – to create a single flat plane I had to create 17 lines of code for this. That’s too many in my opinion.

So with a quick refactoring of the collection class to add a new Createadd method which houses that duplicated code above…


Now, the bottom plate code can be refactored to the following:


Going almost instantly from 17 lines of code to 6 in 15 minutes. And the code becomes that much easier to reuse.

So getting back to what I was saying. I’ll repeat this sequence a few times….


If you’re not good at visualizing the data, my goal with this 3d drawing is to create a 3d object by amassing the points it would take to create that object, then depicting those points on the screen or visualization device(s) (such as Augmented reality and Virtual Reality).

Here’s the end result of what drawing lines between these series of points would have just created:


A simple wireframe cube.

But herein lies the problem with my approach.

Already exposed.

Collision Detection.


Fuck this.

I’m going to build this using real physics.

Textbook style.

Next up.



Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Enter your email address to follow this blog and receive notifications of new posts by email.