peter nitsch.net

peternitsch.net

An exploration of the sensibly insane world of rich media development. Peter Nitsch is an interactive developer at teehan+lax in Toronto, Canada.

AA-Lib ported to Flash via Alchemy

AA-Lib demo

One of the main reasons I started playing around with Alchemy a while back was to experiment with some of my favorite textmode libraries, specifically AA-Lib, which is the most commonly used image-to-ascii-art library of the bunch (has been used with Quake, VLC Player, and many other desktop programs) . It’s a frequently requested port among ascii art fans, and I’m glad to finally release it for everybody to use.

Read the rest of this entry »

Thanks for the can opener!

FITC Award

I won the FITC Best Canadian Developer Website award this week, and I wanted to thank everyone involved with the conference as well as the awesome people I work with. It was great see old friends and meet new peers. Can’t wait for next year!

Smoke effects using Alchemy Particle System

Gas Spray

I’ve been experimenting with adding effects to Particle Systems API, which I ported using Alchemy, and came up with some interesting smoke visuals. The effect was achieved by applying blur and displacement map filters on the AS side, which leaves a lot to be desired in regards to performance, but my goal was to showcase the potential of the particle emitter. I plan on moving those operations to C++, perhaps using David Lenaerts Alchemy displacement map technique, once I figure out how I want to architect the effects layer for release (yes, I am planning on releasing the source).

Read the rest of this entry »

Early experiment with shape formations using Alchemy particle system

Sphere

I wanted to share an early experiment with the Alchemy particle system. My long-term goal is to create believable three dimensional dust/smoke effects, but the early tests with primitive shapes are presenting nice results. This demo features an emitter bound by a sphere spitting out simple circles. There are still some z-depth issues, but I like the look so far. All the drawing code was done in C++.

Check it out.

Adding color and blocks to Alchemy TextFX

Textmode

After spending so much time lately experimenting with Alchemy, I thought I’d revisit my early attempt at a real-time ASCII converter (yes, I have a textmode obsession). TextFX7 (the C++ library I’m using for the conversion) has built-in Color and Block modes which I’ve been wanting to implement. Of course there were a few hurdles along the way, but I learned some valuable lessons about porting Visual C++ and Windows projects to Alchemy.

Read the rest of this entry »

Real time ray tracing using Alchemy

Ray tracing

It goes without saying that ray tracing is a slow art. The calculations involved with lighting, reflection, and shadows are done individually on each pixel, and that taxes the CPU tremendously. Regardless, I wanted to see what kind of speeds you could get using Alchemy.

Read the rest of this entry »

Optimizing the Alchemy Particle Emitter

Particle Emitter

30,000 simultaneously moving particles with a decent frame rate. Not bad at all.

Improving the performance of my Particle Systems API port involved completely rewriting the way data was being marshaled from C++ to AS. The original emitter passed two ByteArrays, one for positions and one for colors, and had AS step through each to draw individual pixels as well as handle 2D projection. This resulted in a steady 20fps (on my Macbook Pro) with roughly 5,000 simultaneous particles.

Read the rest of this entry »

3D Particle Emitter using Alchemy and FP10’s Drawing API

Particle Emitter

The demo I’ve posted is a modified port of the powerful Particle System API, a great tool used for OpenGL game development, using Alchemy. The API operates as a sequencer that performs actions on groups of particles. I managed to get 5,000 particles moving smoothly, but will boost that number significantly with some future optimization thanks to Ralph Hauwert.

Read the rest of this entry »