Monday, February 25, 2008

Papervision3D Holiday Card for Think Inc.

This past fall I worked with Bryan Wills and the team at Think Interactive, Inc. to create a 3D Holiday Card using Flex 3 Beta 2 and Papervision3D v1.0.

As is often the case, this project was fairly aggressive regarding time and budget, but fortunately using Flex 3 and some open source code we were able to get a final solution that performs decently and is pretty fun to use.

You can try out the application here: Happy Holidays from THINK Interactive.

Where's the Source Code?

I will try to get the source code posted soon if I am able to get it approved by the guys at Think. And I'm sure I'll get it out sooner if people request it (curse me) in the comments.

Holiday Introduction - Setting the Stage

Since this is a holiday card, there is a nice flash movie to set the holiday mood. Bryan Wills did the majority of this work and as always, he does a great job!

thinkholidayintro_thumb.jpg
thinkholidayhouse_thumb.jpg
thinkholidayowners_thumb.jpg

Holiday Party in a Snow Globe

The intro movie completes as you are zoomed into the snow globe at which point you will be in a PaperVision3D environment that has the whole Think Inc. staff inside wearing their holiday garb. Since there are a LOT of people inside, we quickly found that trying to render true 3D COLLADA models of all of the employees was too costly, both in performance and dev time, so we simply load optimized PNG images into Plane components and then manage their rotation so they will always face the camera as it flies around the room.

We initially included COLLADA models for christmas trees, candy canes, presents, etc., but again found it made the room too cluttered and impacted performance too much. This reflects the number of images we were loading (and quality of images that we required) as well as the included audio. In general we have found PaperVision3D to perform very well even with COLLADA models. There are also a number of capabilities with culling and other techniques that can gain performance, but were outside the scope and timeline of this project.

As a side note, we found some clipping issues with Planes close to the camera's focal point, which you may notice this as you navigate around the app. Comments and ideas for fixing this are welcome, though of course, this one is out the door already!

thinkholidayparty_thumb.jpg

Interaction

We went through a dozen or so interaction designs before deciding to keep things simple. Users can pan the camera's view using the mouse position and navigate to view an individual person by clicking on the image of the person or by selecting the person's thumbnail (head) in the fisheye control at the bottom. (props to Ely Greenfield for the use of his Fisheye component).

Users can also use the keyboard to walk around the room, though this was considered a secondary type of navigation since most users wouldn't know to do that (and we didn't want to clutter the interface with instructions for usage).

thinkholidaybryanwills_thumb.jpg

Hope you'll check out the holiday card and give developing with Papervision3D a try. It was a blast to work with and I'm just looking for another opportunity to work on a project with it.

Ryan

Co-Author

Bryan Wills - Think Interactive, Inc.
Bryan's Blog at Think

Contributor

Frankie Loscavio - Frankie's Blog

Thanks to Frankie for all his help researching Papervision3D and COLLADA and in working with various 3D programs (Cinema 4D, 3DS Max, others). Although much of the 3D modeling work we did wasn't included in the final release, the learning experience for me was incredible. If you haven't checked out Frankie's blog and you do any Flex development or design work, you are missing out! He does some awesome work.

Credits

Flex 3 by Adobe

Papervision3D - Core Team: Carlos Ulloa, John Grden, Ralph Hauwert, Tim Knip and Andy Zupko

Fisheye component by Ely Greenfield

Thursday, November 8, 2007

I am a Hybrid

I recently updated my profile on linkedin and thought I'd post my professional summary here since it gives a little insight into my views of what I do for a living and why.

Ryan Swanson’s Summary

My goal is to create compelling user experiences through software.

This requires innovation in design and development and the fusing of capabilities and functionality with intuitive and engaging interfaces. Finding the harmony between form and function is my passion.

I am a hybrid. I am an engineer. I am an artist. I am a developer. I am a designer. I am a leader. I never stop learning, growing, evolving.

I am an entrepreneur. The entrepreneurial spirit is as relevant in a corporate development position as it is in a boutique creative design firm as it is in your own startup. It is about actively looking for a need that is not being met and pro-actively creating what is needed to meet it.

Technology does not exist for its own sake. Creative Suites, Languages, 3D Modeling and Motion Graphics Tools, Integrated Development Environments, Platforms, Protocols... These are the tools we use. Each has its benefits and trade-offs within particular context(s).

I have worked with most of them and have learned this:

Some people argue for an idea or technology they *like* the most or are most familiar with - this is successful only until the context changes.

A few of us recommend an idea or technology after considering its merit within the context for which it exists to solve a problem and will continue to challenge that evaluation knowing that in technology the context is continually changing.

The former tries to win arguments. The latter searches for truth.

I want to change the world. Let's get started!

Sunday, September 9, 2007

blog.ryanswanson.com created

Hello World!

I am finally getting my act together and starting a professional blog. I will primarily use this blog to evangelize the technologies I work with in my career as an RIA Architect and User Experience Designer/Developer, but I will also include anything I find interesting or significant within the broader fields of computing, media, design, art or science.

The technologies I work with include but are not limited to:


  • Adobe Flash, Flex and AIR

  • Adobe Creative Suite products (of which I use almost all)

  • General web technologies such as HTML, CSS, JavaScript

  • The always buzzworthy (though not really all that new for those of us who did it before the term was coined!) AJAX or Asynchronous JavaScript And XML

  • Although I am a recent Apple/Mac convert, I am now a huge fan and love my MacBook Pro, so I should include Apple, Mac, and iPhone on this list.

  • Elements of User Experience: in particular, Information Architecture, Interaction Design, Information Design, Interface Design, Navigation Design, and Visual Design

  • Art and Design in general

  • Significant advances in computing as a whole.

I have been following a number of bloggers for many years and am now hoping to make my contribution after having gained so much from so many bright lights in the community.

The following list includes the individuals whose blogs and community contributions have helped or impressed me the most. Thank you all!

(list to come)

Cheers!
Ryan