Close Show/hide page

{zero point nine} personal experiments, etc.

3D Page Curl Effect - Updated

Thumbnail - Click me Click to run demo

A few improvements have been made enhancing visual quality as well as overall framerate under load, plus a few presentation and interface-related tweaks.

The main class file for the effect has been updated as well.

Thanks to Carlos Ulloa and Alexander Zadorozhny for their thoughts on the Papervision3D mailing list.

3D Page Curl Effect using Papervision3D

Thumbnail - Click me Click to run demo

The venerable "page curl" effect, done in 3D. I originally did a version of this in AS2 using a home-grown 3D class library at about the time Papervision was entering public beta. This implementation using Papervision3D and AS3 runs a few times faster.

Press ENTER to create new instances of the book. Press it several more times and watch your browser chug :).

Here's the main class for the page turn effect. I used the code for the PV3D Plane class as a starting point (but, in hindsight, probably should have subclass'ed from it instead). To create the appearance of a rotation of the 3D object, the individual vertices are rotated around the Y axis by increasing amounts depending on their (original) position along the X axis.

Version: 0.9B - Last updated on 4/22/2007

Bitmap Pixel Dissolve

Thumbnail - Click me Click to run demo

An image fade/dissolve where the individual pixels move off the bitmap and disappear. Written a couple months ago to learn how to get around in AS3.

Read more

Actionscript Halftone Effect

Click to run demo

Some of the most satisfying graphical effects are simple in concept and execution.

Here's the class in Actionscript 3. It's essentially one public method which takes in a bitmap and writes to a sprite. With a few optional parameters. See the source code comments for the details.

To do: Add the ability to use overlapping colors. Apparently, the dot patterns for additional colors are supposed to be set at different angles from each other -- which is less straight-forward, programmatically, than simply setting the 'screen angle' to 45-degrees, as done here.

Flash Webcam DVR

Thumbnail - Click me Click to run demo

Big caveat: This eats up a _ton_ of memory, as the video is simply made up of hundreds of frames stored in an array of BitmapData.

Bigger caveat: The save and load feature is only practical for very short video clips, and will otherwise bring down the browser (!). It stores megs of data to a local SharedObject, which surely constitutes a criminal abuse of what LSO's are designed to do (har).

Rational: When doing personal stuff, I’m only half-interested in questions of usability and stability (!)

To-do, hopefully: Port to Apollo (but first learn how to use Apollo!); offload video data from memory to disk using the Apollo file I/O API (Thanks, Béla, for the idea); find a solution to compress video to memory/disk on the fly.