
First Person 3D Engine - Everything You Wanted to Know…
October 8th, 2007
The response to my Flash / PV3D based first person 3D engine has been excellent. Thank you to all who have left such kind remarks. There have been many questions regarding the engine asked both on and off the PV3D list as well as within the comments of my original announcement. I’d like to now take the time to evaluate, explore, and answer these questions. But I’m not going to do that here. Huh? Wha’? You ask. What do you mean? If I post anything more about graphics, games, or 3D I think I’ll be forced to change my site to ActionScriptGraphicsProgrammer. I’m long over due for a nice fat post on architecture, design patterns, or development processes, or something along those lines. But I digress, that’s not really the reason I’m not going to answer your questions here. Let me explain…
From here on out I’ll, for the most part, be providing all communication about the engine over at Animas Interactive. I have a couple of motivations for doing this. First, my vision is that the engine will be bigger than myself and my personal blog. More than just an experiment I’ve done or am working on. My hope is that this will soon be a collaborative effort and there may at some point be other co-conspirators posting updates about the progress of the project. But not a whole lot on that front has happened yet. We’ll just have to see how things play out. The other motivator is to help formalize this vision by giving the engine an identity to live under.
Now that that little explanation is out of the way, let’s get on with the information about the engine.

First Person 3D Engine
October 3rd, 2007
Wow, it’s been an amazing last couple of days with the announcement of Astro and all the hype around the new 3D API and the pixel shader language Hydra as well as some of the sneak peaks shown at Max. The community is in a rampant frenzy as speculation and confusion runs wild. Hardware acceleration, C++ getting translated into ActionScript, and Flash running Quake! It’s no wonder people are freaking out.
At any rate I figure now is a perfect time to make a little announcement of my own. Actually I confess, I already decided a few days ago was the perfect time when I posted this to the Papervision3D mailing list and John Grden is probably showing this right about now at Max. Never the less I decided this was worth a blog post.
I’ve been working on a Papervision3D based first person 3D engine. Below are a couple of screen captures from two different examples of the engine.
Before you get too excited and run off to see the demos there are a few disclaimers that need to be expressed. First, you need a fast computer. I’m sorry, that’s just the way it is. Second, I haven’t implemented proper pre-loading so you’ll need to be patient and wait for all the imagery to load. Last, these demos are still a little rough around the edges.
Now for the controls…
Mouse click and move - look around
e - walk forward
d - backward
s - strafe left
f - strafe right
And the moment you’ve all been waiting for…
Demo 1
Demo 2
Thoughts are welcome and appreciated.
Enjoy!

Fluid is Hiring!
July 31st, 2007
Fluid develops and sells the Fluid Retail™ suite of online merchandising tools that simplify, automate, and optimize online merchandising. Fluid also designs and develops award-winning interactive digital retail experiences for clients including Reebok, Timberland, JanSport, Mattel, and The North Face. For years Fluid has been a leader in the development of single page architecture rich internet applications.
Fluid is hiring skilled and passionate software engineers to work with technologies such as Flash, Flex, dHTML, CSS, JavaScript, XML, Java, and SQL. Fluid will provide the necessary technical training in these specific languages; we do not require prior experience with them. We do, however, require that candidates demonstrate proven ability and motivation. Specifically, we require:
- The proven ability to write superior object-oriented code in a language like Java, C++, ActionScript, or C#
- Demonstrated facility with object-oriented analysis and design techniques like design patterns and UML
- Written and verbal communication skills
- The organizational ability to manage time predictably and effectively
- Motivation for professional growth
Fluid also values related skills like illustration, photography, information design, visual design, digital music, and project management. Successful candidates will contribute to the conception, planning, development, testing, and deployment of innovative web development projects. You will be given as much responsibility as you show you can handle.
Candidates would work in Fluid’s San Francisco office. Fluid offers competitive pay and benefits. Please email your resume, a cover letter, and a code sample. Thanks for your time.

Updated Fire Sphere with Source
July 6th, 2007
There have been a few requests for the the source to the Fire Sphere demo I posted forever ago. I’ve finally gotten around to cleaning up the code and getting it to work with the latest rev of PV3D.


The material applied to the sphere is created using a static PNG with a DisplacementMapFilter applied to it. The DisplacementMapFilter uses a BitmapData object that has had perlin noise applied to it to give the flame effect. A lot of other effects can be created this way as well. Things like rippling water or clouds. It’s just a matter of changing the original image and tweaking the settings of the filter and the noise.
You can get the source here. It’s really quite simple. The whole thing is under 200 lines of code.
Enjoy!

A* 3D - No, really, it’s 3D
July 3rd, 2007
There seemed to be a little disappointment that my A* demo wasn’t actually searching in 3D. Maybe I should have called it A* visualized in 3D. At any rate I’ve revamped things and now have a demo that does search in 3D.

It wasn’t much of a stretch to get things working in the third dimension. The only thing I found particularly tricky was making sure that the path didn’t cut through a solid corner — move diagonally adjacent to a non-walkable node. Besides that everything was pretty straight forward. I also took the time to make sure the code was clean and at least somewhat documented. I haven’t bothered to try to do any optimization and I certainly haven’t put much time into splitting the functionality into proper objects. Nonetheless, here’s the source.
Note that you’ll need to add to your class path Away3D as well as Zeh Fernando’s Tweener w/ Bezier support which powers the animation in 3D.
Enjoy!

A* 3D
July 2nd, 2007
Path finding is hardly a new topic for the Flash community. For me however, it’s an area unexplored. While I’ve always found the topic interesting and enjoyed the demonstrations out there in the wild my direction has just simply never really taken me there. Instead I was probably reading about some agile development process or something nice ‘n’ dry like that. Anyway, as I’m now delving deeper into 3D and game development topics I’ve started experimenting with path finding. It’s quite fun and not really all that complicated. At least at the elementary stage that I’m at.
I’ve been working with the A* algorithm which uses heuristics to find the most optimal path from a start node to a destination node within a node graph. The algorithm has many uses, especially in game programming.
In my exploration I’ve combined the A* algorithm with Away3D to illustrate how an object could travel through a 3D environment based on a found path.
It doesn’t always find the best path. Probably something simple I overlooked. I actually find that this could be used as an advantage however. For instance, if this was a character in a game the less optimal path can represent a poor choice by the character giving it a bit of added realism. A thought anyway.

Flash Video in 3D - The Tutorial
April 2nd, 2007
Adobe launched my Flash Video in 3D tutorial today. The tutorial, geared towards intermediate developers, walks you through mapping video to a 3D mesh using Papervision 3D and includes source code.
Check it out.

Flash Video on 3D
February 28th, 2007
Evident by the many impressive demos that are spreading like wildfire throughout the community, the open source Flash 3D engine, Papervision 3D, is taking the Flash world by storm. It’s interesting that Papervision caught on like it did considering another open source 3D Flash engine, Sandy, with many similar capabilities has been around for some time. I guess some things are just, before their time. At any rate, I encourage anyone interested in 3D to take some time and explore Papervision. It’s an amazing engine.
I myself have been spending a great deal of my free time getting to know the engine. It’s quite fun and I’m always awed by the fact that, this is Flash. My latest experiment involves streaming video. It was inspired by the great work done on The North Face Kiosk by close friends and colleagues, Darren and Tommy. During the development of The North Face Kiosk I never thought what they were doing with WPF would have ever been possible, with acceptable performance, with Flash anytime in the near future. I was wrong, take a look…

There are obviously limitations with how far this concept can go but, I think what this demonstrates is promising. Flash has really come a long way and, as usual, it’s future is brighter than ever. The Papervision community is really pushing Flash and there are going to be many more great things to come.

The Dawn of a New Blog
February 27th, 2007
I’ve been holding onto this domain for a while now. Originally I had grand plans for some kind of community content driven site with nice articles and pretty pictures. Of course in reality I never found the time to get it up and running. More recently I have been wanting a place to post some thoughts, ideas, code, etc. and decided this would become that place.