Monday, 28 September 2009

3D Studio MAX clone - alpha 0.0.1 :)

A friend of mine has been making 2D floorplan tools in Flash since MX.
A couple of years ago I built a 3D option for him, based on the then open source Flux player(X3D).
When MediaMachines turned into Vivaty, the javascript API broke and player was no longer open source, and that was the end of the solution we spent 6 months developing. Ouch! Since then we've been looking for another option based on open source technology.
In the meantime, maybe flash has come of age to do this type of thing?
I've seen Autodesk's attempt, and while I understand their thinking, for me going totally isometric/single angle is just too big a compromise.

As a proof of concept I used a couple of hours making a demo in Away3DLite. Out of laziness and lack of time I've used the Plane primitive for walls, where a custom class is called for to add thickness and get around z-ordering issues.

So here it is, the simplest 3D editor you're likely to see :)

Use the pencil to draw a few boxes and hit the "3D" icon for a rough 3d model. Be warned at the moment the eraser just clears everything, without a prompt.

UPDATE: Save floorplan or 3d drawing as .png, straight to your harddisk.
Flash 10 required, but hey, you wouldn't be here if you didn't have FP10, right? :)

Monday, 21 September 2009

Atomic Fusion

Still playing around with Away3dLite.

It's a huge advantage when you want to extend a framework for your own purposes, that the framework itself is compact and understandable. That's certainly the case with this lastest version of Away3d. I've been working for some time with high fidelity models, X3D import and custom material filters. This work has been easy to migrate to Away3dLite, which is an even faster rendering engine then anything I've been able to code. I look forward to publishing all the fruits of this labour, but for now here's a demo done last friday afternoon just for the fun of it.
and source files...


Sunday, 13 September 2009

Away3d lite, first test

The first test og Away3dLite looks promising.
(Click the screen to start)

I fudged the BitmapMaterial so I could use a shader as input.
At 30 fps there seems to be no performance hit at all. At higher framerates the shader does cause a dip compared to using a plain bitmap. The size of textures seems to affect framerates dramitically when using shaders generally.

Saturday, 12 September 2009

Away3D, now in F10 optimized version

Away3d has just released a new version, Away3dLite.

This release seems to address all the same issues that Atomic was trying to.
Firstly it is written from the ground up for Flash10, making full use of the new features/types, etc. which greatly increases performance, and secondly it has a very small footprint compared to the full engine.

I think it's a shame they dubbed it "Lite" as that suggests it's less powerful than the full version, when in reality it's a good example of 'the less, the more'.

Great release, will start testing ASAP.

Normal Mapping

Normal mapping has now been added to Atomic.

Normal maps provide a fast alternative to, for example phong shading and other lighting models, and at the same time enhances simple geometry.
The normal filter adds less than 1Kb to the size of the engine, but adds a fast, smooth, directional lighting.

Click the image to open the example, click and drag to rotate and zoom

Tuesday, 8 September 2009

Atomic Kitten

Atomic, the new 3D renderer is purring like a kitten, even with full mapping and baked ambient occlusion.

There's zoom when you click and drag in the y-axis. I discovered to my horror the scrollwheel *still* doesn't work natively in Flash player 10 on Mac. Sorry about that, will use alternative from now on...

Wednesday, 2 September 2009

Introducing Atomic

Here's a first glimpse of our new 3D class for Flash10, Atomic.
Wait a while for the 300K model to load then click the screen to start. There's some primitve navigation via mouse position.

This actual t-shirt design is available at

The idea of Atomic is to be like the atom itself, very small yet surprisingly powerful.
Rendering quality is the number one priority, closely followed by speed. Materials are written as shaders in Pixel Bender. The example uses a material that combines a Normal and Diffuse map.

Why a new "flash 3D engine"? With Flashplayer 10, a little knowledge of 3D maths and shaders, the developer can arguably achieve just as good, and maybe even better results using Flashes inbuilt classes than importing large external libraries.
The missing element right now is that Flash player supports no native 3D formats, and that the drawing API does not support native z-sorting. Atomic handles these two issues, leaving the rest up to the developer and the particular project.