So you want to do 3D in Flash, but actionscript isn't your cup of tea? FreeSpin3D is a 3D engine made for the rest of us. It has some limitations, but these also make it much easier to use for the average Flash designer. In this review, we take the latest version for a (free)spin to explore what is possible using this Flash CS4 extension.
What is it? 3D extension for Flash CS4
Platforms: Windows / OSX
Manufacturer: Revolver Animation & Game Technologies Ltd
Cost: Standard license is $195. Educational and volume pricing available
Papervision3D, Away3D and Sandy3D is all the buzz in the community, but getting into any of them requires quite a bit of coding skills. What if all you want is to display a 3D object with some simple mouse interaction? FreeSpin3D is a product that can accomplish this nicely without any programming skills. If you know a little actionscript, you can take this even further and even make simple games. You can find a fully functional trial version on the FreeSpin3D website. This will display a watermark in your SWFs, but let you try the product out and maybe use it in a pitch/prototype for a client.
FreeSpin3D installs as Flash extension. All you need to do to install it is to double click the MXP file. This opens up the CS4 extension manager and installs the Extension right in your IDE. That's it.
After installing, you'll find a new panel in your Flash IDE under Window -> Other Panels -> FreeSpin3D. Opening the panel will initially display the License window where you can click "Evaluate" to just test or enter your activation code. Once registered, you won't have to see this screen again.
The FreeSpin3D panel is very much like a Wizard, with the initial tasks at the top and more advanced features at the bottom. You start off by importing a 3D model. Internally, FreeSpin3D uses a format called FL3D, but you can import any 3DS model using a custom built AIR application. The AIR app will upload the 3DS model and convert it to the FL3D format for you. At the moment, FreeSpin3D supports models that consist of up to 10000 polygons, so you can use fairly complex models. The model is uploaded to a server where it's processed and converted to the FL3D format.
The processing can take a bit of time, but it's a one time operation only. After importing, the FL3D model can be downloaded and used right away inside the Flash IDE. One word of warning - after waiting 30 minutes for a large model to be processed, we accidentally clicked an option to adjust the settings for our model. This forced us to re-process the entire model! A small alert-dialogue would certainly be in order here to prevent such mishaps.
When you've selected your 3D model and imported it, it will show up as a symbol on the stage. Just like a movieClip, you can scale and rotate it as you like, so adding this to your existing design is a breeze. The symbol shows your 3D model rendered directly on stage (Live Preview) and you can easily rotate and position it using the FreeSpin3D panel inside Flash CS4.
Next up is selecting how this will be displayed on screen (rendering). You can add a preloader by just checking a checkbox and then set properties for your 3D object such as color or texture. You can set up a set of preset rotations of the object as to highlight certain features of the model or you can let the user rotate the model freely. This can be done using either keys of mouse and there's no programming required.
After this it's just to export and you have a fancy 3D model spinning on screen. If you have access to someone that can create the 3D models for you with light and shadow effects baked into the texture of the object, you can achieve some pretty impressive results. The mobile phone model that comes with the download is a good example of how much a good texture can do to a fairly simple 3D model. Many 3D modeling applications export to the 3DS format, so this part should be easy as well.
As with the Open Source 3D engines for Flash, the size of your model impacts playback so you'll need to optimize any model you want to use. Click here to see how a complex 3D model with 7257 polygons will play back.
We've done a few tests scripting the FreeSpin3D models. It's quite limited what you can do, but for many this will do the job. You can set the orientation/rotation and position in three dimensions (X, Y, Z). You can do simple collision detection, swap color, textures and even use MovieClips as textures. There's also convenient methods for moving the model in all directions that takes rotation into account as well as adding 2D movieclips to the depth-sorting done by the engine.
In other words, you can't use this to build a full 3D world, but you can certainly make interactive things. One thing I found to be a major limitation is that the camera position is fixed. You can rotate the object, but you can't make the camera swirl around the object. If you need multiple 3D objects on stage at the same time, scripting these will soon be complicated, but it's not impossible. FreeSpin has a good examples section that shows some of the possibilities. Our favorite demos are the 3D paint application and this jet fighter game. Pretty good use of this rather basic scripting support!
FreeSpin3D is super-easy to get started with and probably the simplest way to get into 3D in Flash. They offer a solid series of video tutorials to get you started and when you're done with that, there's more to be found in the Online documentation and the API reference. If you're stuck, you'll get help in the online forums. All in all, we're pretty impressed by the quality of both the Extension and the resources offered.
We had one issue where the extension complained about us having to re-install Flash due to some issue with Java. This was resolved by running Adobe Updater and installing the latest update for Device Central. Don't ask us why this worked, but it did. The only other thing we find cumbersome is the importing of 3D models using the AIR application. Large models tend to time out and since this is the only way to get models into the Extension, it's annoying. It works if you make sure the AIR application has focus all the time, so it's not a showstopper. We also experienced that after processing a model for quite some time, the conversion process restarted for no reason.
In one of the first demos I saw of FreeSpin, the model rotated in a slightly choppy way, so I incorrectly jumped to the conclusion that this had to be pre-rendered or something. While the models are stored in a funky way inside Flash (as a bitmap actually!) they are fully dynamic 3D models. According to Daniel Anisman from FreeSpin3D developer Revolver Animation & Game Technologies Ltd, FreeSpin3D is based on the OneLayer3D patented core technology. The OneLayer3D core technology converts a 3D model from its original file format (currently .3ds) which is suitable for real 3D environments (like 3ds studio max), to the proprietary FL3D file format suitable for 2D vector based rendering environments (like adobe flash).
When converting the file AVPs (absolute View Points) of the 3D model are created, an AVP is the polygonal data of the 3D model from a specific view angle, that enables a perfect rendering of the 3D model from that view. The number of AVPs created for a 3D model depends on the conversion settings.
You can also use FreeSpin3D with Flex, but that would require that you embed your models in a FLA file and then export a SWC from there. It's workable, but cumbersome so you'd probably want to stay with the Flash IDE.
FreeSpin3D is a great tool for those simple 3D tasks. It's perfect for just displaying 3D models online (like in a product catalogue) or on a blog. It's limited in scope, but does what it does really well and it requires no programming skills. This means that anyone that knows how to use Flash can add 3D to their designs.
Update: Freespin has now added "Spinups" a plugin architecture that opens up for more advanced interations such as interactive cameras and textures. Check it out here.
Jens has been working with Flash since version 3 came out. Since then, he's been an active member of the Flash community. He's created more than a hundred Flash games (thus the name of his blog) but he also creates web/standalone applications, does workshops and other consulting. He loves playing with new technology and he is convinced that the moment you stop learning you die (creatively speaking). Jens is also the Editor of this website.