Victory at Assembly, opensourced evoCunningParticleEngine and some bad news


After 4-5 months of twiddle it payed off and we won again at Assembly. You can checkout the outcome in realtime by clicking the picture or view it in HD at Youtube. Here’s also the link to the info file and link to pouet of course.

As I mentioned earlier I invited David Lenaerts to help with the demo. All those fancy Away3dLite stuff with shadows and reflections came by his hands. Awesome!

I also compiled the whole shit through Joa Ebert’s Apparat. It did speed up it a bit.

I also had a presentation at Assembly. I talked about my flash art and introduced the evoTinyEngine, evoCunningParticleEngine and evoSync-tool. I haven’t found the recording of the speech yet but here are some of the links I had there.

evoCunningParticleEngine at googlecode
evoTinyEngine at googlecode
download the evoSync air app

You can also download the presentation in pdf format.

Then the bad news. I had an accident last Friday. I fall down from the fence and my wedding ring got stuck at the top of the fence.
The ring peel off all the skin, muscles and stuff out of my finger. The main tragedy about it was that it also ruined my fingers blood vessels and the finger had to be amputated. So I won’t be coding new experiments for a while now I guess. I also need to learn how to type fast with 9 fingers. I will recover eventually, but it’ll take some time and hard work.

I’ll post more info about the particle engine later when it won’t hurt so much to type.

p.s. We also did this little demo with Jalava to show that 4k intro can be done with Flash. It’s not too fancy but it proofs the concept :)

What do you think of this? (10)

Approaching Assembly 2010


Evoflash has released products at Assembly every year since 2006. Our score has been “great success” so to speak. 1st 06, 1st 07, 1st 08, 3rd and 2nd 09. This gives us a pleasant ground to move on. We don’t have to “win” anymore. We can experiment a lot and give more space for design.

We gave us a huge goal this year to produce three demos and I can say for sure that there will be at least one! It has always been a bit shame that flash demos are lacking competition. I started a crusade this year when Peter Nitsch asked me to help him with the blockparty invitation intro. I introduced him the evoTinyEngine and everything went really smoothly. It’s easy to work with such a talented person.

This experiment gave me certainty that this is the right way to introduce demo making to new people. The scene of flash experimentalists is huge and I have always find it odd that these guys won’t release demos. I’ve had a conversations with skilled people who would like to do a demos but are hesitating for some reason. Maybe it’s the respect they give to PC demo coders and the whole scene. Maybe they feel that they would ruin it?

The demoscene does not equal to PC-demoscene. As Wikipedia so nicely put’s it:

The demoscene is a computer art subculture that specializes in producing demos, which are non-interactive audio-visual presentations that run in real-time on a computer. The main goal of a demo is to show off programming, artistic, and musical skills.

The platform can and should be what ever. The point is to show what you can do with your skills on that platform. It can be Amiga, modern PC, Android mobile, your mothers washing machine or Flash player inside browser.

For this years Assembly Real wild demo I invited David Lenaerts to help me with the demo. I’m hoping that this way he’ll get an easy push inside the rabbit hole of demoscene. I’ve also been drinking around Europe (=ones in Amsterdam…) and challenging people to do a demo. (=I asked Ralph Hauwert ones…)

It’s a big job to create a 4 minutes demo. It takes a lot of code, designing and time. The evoTinyEngine is build to help. I’ve also created a new tool: evoSync. Which is a synchronisation tool made with Adobe Air. If everything goes well I’ll give a speech at Assembly and show how to use these tools. I’ll also share as opensource the latest versions of evoTinyEngine, evoSync and evoCunningParticleEngine after that weekend.

There is still plenty of time to create a demo. So why not?

What do you think of this? (2)

Laboratory output n°73 2k Something

JumpOne
RoundItGoes
click on them to view in full screen.

I’m experimenting what can be done in 2kb with flash. The Scion was also one of those tryouts. I use Pixel Bender here and it seems to be the best tool for low bytes works. Here are couple of things I figured out while playing.

You don’t need to setup the default values. Following works just fine.

parameter float z;

Also the metadata can be written like this:

<languageVersion:1.0;>
kernel a <namespace:"";vendor:"";version:1;description:"";>

The fastes way to calculate distance between two points in PB:

float2 point0 = float2(0.0,0.0);
float2 point1 = float2(1.0,1.0);
float d = length(point0-point1); //not accurate but useful enough

I’m not quite sure about this but it seems to me that it’s much faster to calculate sin(), cos(), atan() values in Flash then in PB. :) So avoid calculating same math for each pixel.

If someone knows more tricks please share.

*** [update 2010-05-14] ***

Here’s how to create a class function (sort of..)

#define calculate_something(pixel,x) pixel.r = 1.0/(x*.01);

void evaluatePixel()
{
float2 p = outCoord();
calculate_something(outpixel,p.x);
}

Here’s the way to do a loop in Pixel Bender

#define loop(res, i) res *= i;

void evaluatePixel()
{
float myColor = 1.0;
loop(myColor, 0.5); //myColor = 0.5
loop(myColor, 0.5); //myColor = 0.25
loop(myColor, 0.5); //myColor = …so on.
loop(myColor, 0.5);
loop(myColor, 0.5);
outpixel = float3(myColor,0.0,0.0);
}

What do you think of this? (6)

Laboratory output n°72 Scion

Scion
My sister just had her first child and I’m reading Darwin.

What do you think of this? (3)

Laboratory output n°71 ParticleYou

ParticleYou
Your webcam in depth. Black at back white at front.

LittleGreenMen
Works best in a bit darker room.

GoldenWave

What do you think of this? (9)

Laboratory output n°70 AbsurdStability

AbsurdStability
Desire of stability in the middle of vortex of change. Consider it absurd.

Sure I know it’s the self talking to me.

What do you think of this? (2)

Laboratory output n°69 PillAvalanche

PillAvalanche

I’ve been coding Objective-C lately and less Flash. I have decided to learn more languages properly and the language of evil fruit company is one of those. I feel humble to be such a newbie, but at the same time I found new ideas for my AS3 coding patterns.

The constant of diverse is getting stronger and it’s quite obvious that in the future we need to know broader stack of techniques. Also we need to know these techniques deeper. For creating something ‘new’ we have to look even farther out of the box.

This is all because of the ever growing flood of information in this digital cosmos. Things are old at that very moment they where released. Our eyes glimmering we are producing piles of old crap.

It’s not depressing or even worrying. This is how it has always been. Things are again getting faster, broader and more diverse.

What do you think of this? (11)

Laboratory output n°67 EggAndATrap

MandelEgg
Modified an egg from Mandelbrot set. Few running numbers will sculpture it endlessly.

JuliaTrap
Trapped Julia set.

I know people who ones get into fractals and never came back. I hope I’m not one of those.

What do you think of this?

The fastest way to Z-sort and handle objects in AS3

z sort
(Warning! this will be technical mumbojumbo)

In real time computer graphics one thing has given headaches to artist for years: Z-sorting (iow. Z-buffering). Everything goes great until you need to sort objects on screen. It simply eats your CPU. In AS3 this is a huge bottle neck. Yeah the drawing is rather slow but sorting is even more slow. If the challenge is demanding you just need to be equally smart.

As you may have noticed in my works the z-sorting doesn’t seems to be very big issue. For example the GameOfLife3D rolls 13824 particles and does dozen other stuff as well. In worst case just the sort can take up to 40ms in every frame.

When creating an engine of 3D the handling and z-sorting of objects should not thought as separated blocks. To gain performance every piece need to work together. The perfect symbiosis has to be found to serve all step of the system.
Read the rest of this entry »

What do you think of this? (12)

Laboratory output n°66 Connections

Efla 1000 connections
Here you see 1000 particles connecting each other if they travel close enough.

FormsOfConnections
Abstract form of connections.

Connect3dSphereIn2Dimensions
Combine 3D sphere into dimension two by connections.

3DConnections
Connections in 3 dimensions.

Optimizing is everything. More you can optimize more powerful your tools become and you can do more. I never get tired of researching more ways to optimize.

First level of optimization is to get current code to run as efficient as possible by cutting off all unnecessary method calls and maths. Also strict typing and bitwise solutions need to be thought.

Second level is to think about the concept. Like in these demos if all objects check their distance with all objects the cpu will freeze. The solution is to split the scene into grid and push objects into those blocks according their coordinates. With that the distance check can be crop to affect only objects that are near.

Third level is something that I haven’t reached yet so don’t know anything about it yet.. :)

What do you think of this? (6)

Older Posts »