Tag Archives: 3D

Unity project structure – reminds me of Flash Pro

unityThe more I play with Unity, the more it feels like the workflow of Flash Pro, whereby you attach scripts to instances of actors on the stage.

I’m not talking about the ‘pure code’ approach that all ActionScripters have become used to now; but the decentralised collection of independent scripts associated with timeline movieclip instances (behaviours, if you will).

So far, I’m liking it though. Unity (and its scripting IDE MonoDevelop) feels like all the best bits of Virtools, Flash Pro, FlashBuilder, Blender, Poser and 3D Studio MAX. I’m hoping that in future versions, Unity Editor and MonoDevelop will be more tightly integrated, or even combined. And, just maybe, replace JavaScript with a TypeScript option – although I like C# anyway.

For those who have played with any of the above and want a good tutorial to get stuck right into games development with Unity, this (intermediate level) tutorial is great.

How to correct 3-D projection on stage resize

The problem:
You’re using Flash 10’s native 3-D API and notice the projection goes a little skewiff when resizing the window.

The solution:
You need to reset the stage’s projection centre on stage resize, like so…

 

BBC – A History of the World in 100 Objects

I just finished a new project, called ‘A History of the World in 100 Objects‘, it’s a joint venture between BBC Radio 4 and the British Museum to chart human history in a new way. I developed the concept for the 3-D object explorer with the guys at GT/VML and built it using Flash 10’s native 3-D capabilities. Users are able to explorer objects from throughout human history in a potentially inifitely expanding 3-D time tunnel and even make history by uploading their own objects.

Here’s some footage of the 3-D explorer:

The main challenge facing the development of the 3-D explorer was to build something capable of handling up to 10,000 objects, loading in their images and displaying it all in glorious 3-D… all without crashing the user’s browser. Every object or filter set accessible within the explorer can be bookmarked, shared, or navigated with the browser back/forward buttons. For added accessibility, the explorer’s 3-D view itself can be navigated with the keyboard, mouse wheel or the on-screen controls.

I built the application strictly to optimise performance and memory management, while ensuring maximum stability. Coding techniques such as object pooling, typed arrays, load queueing, render deferral and the flyweight design pattern were used to maximise performance and minimise memory usage.

CoolIris type thing in 30 lines

Head tracking in 3D

I started trying to find useful things to do with face detection, but with limited success. I tried using the Libspark Haar Cascades implementation of face detection with Papervision3D to create a sort of head tracking effect, but it’s a little flaky – partly because of poor tracking accuracy and partly because it’s too CPU intensive. You can view it on its own page here.