Better "Plasma" generator

The built-in Plasma generator seems unreasonably slow, and is visually too periodic for my tastes. I'm interested in a more entropic one.

Michael Neely's picture
Plasma Generator?

Hey Smokris, Can you elaborate on what you refer to as "Plasma" generator?

Thanks, Mike

smokris's picture
Re: Plasma Generator?

Way back in Tiger there was a patch called "Plasma Image". It generated output like this:

(Actually, it still exists in Leopard, but it's deprecated and hidden from the Patch Creator by default.)

Plasma was a common demoscene effect back in the early 1990s.

For example, you could start with a few Perlin Noise generators and mix them together:

I think this is a task better suited for the GPU than the CPU, and since QC natively allows the creation of GLSL and Core Image kernels, a custom patch for the effect is unnecessary.

PreviewAttachmentSize
plasma.qtz4.15 KB

leegrosbauer's picture
Re: Plasma Generator?

Thanks for the cool patches!

As of this posting, the Perlin Noise CIKernel.qtz (available from the Perlin Noise generators link) has some underscores in the file name. For me, the underscores needed to be removed from the file name prior to installation before QC could access the patch for utilization in plasma.qtz. It worked fine once the underscores were removed from the filename. [edit: fixed]

A quick implementation of plasma.qtz as an image filter, layered up in a Spooky feedback configuration in CamTwist. Image filter layers; Gradient, Plazma, Spooky Receive, CIProSharpen, Spooky Send, Pinch:

smokris's picture
Re: Plasma Generator?

Ah, thanks for catching that. I've updated plasma.qtz (and perlin.qtz on the other page) to refer to the CIKernel with underscores in the filename.

Also, nice work with the modified plasma!

leegrosbauer's picture
Re: Plasma Generator?

Cool. Since the files are all consistent now I thought I would delete the original observation, but I don't seem to have editing capacity on that posting. Feel free to remove the comment if you wish. It might just confuse readers if it stays, imho.

Thanks again for the great patches. Much appreciated.

toneburst's picture
Plasmoids!

tangentially-related, but I've just been working on another conversion job. This time it's a plasma-type effect by beyon, done as an HLSL shader for vvvv. I've converted it for GLSL/QC.

Screenshots here, QTZ to follow. http://machinesdontcare.wordpress.com/2009/03/02/demoscene-plasmoids/

a|x

gtoledo3's picture
Re: Plasmoids!

Oooh, that is muy bueno.

psonice's picture
Re: Plasmoids!

Very nice, but they look a lot more like 2d blobs ;D

mfreakz's picture
Re: Plasmoids!

Very biological forms... Beautifull I would like to see that with motion !

toneburst's picture
Re: Plasmoids!

Here's the QTZ. It could probably do with some more work on control-ranges, and some kind of automation of the values, but it's quite interesting as it is.

a|x

PreviewAttachmentSize
Plasmoids.qtz14.41 KB

toneburst's picture
Re: Plasmoids!

Also, I've just had another look at an old project of mine: a CIFilter version of a GPU Voronoi/Cell Noise implementation. I've posted the QTZ elsewhere, ( here http://kineme.net/Applications/Compositions/PerlinNoiseCIKernel#comment-... in fact) but here's some screenshots of the latest version in action:

a|x

gtoledo3's picture
Re: Plasmoids!

Woah. Wow, I like this. Mannnnnn. I need to spend more time on CI. This is really really really great. I REALLY like the marfa setting.

toneburst's picture
Re: Plasmoids!

Cheers! I wish I'd written the original code. There was quite a bit of tinkering involved in getting it to work in a CIFilter though.

I think my favourite type is the Acos-based version.

a|x

jersmi's picture
Re: Plasmoids!

Nice work there with the plasmoids. Very useful and interesting. In fact I recently found your patch with the original voronoi CI filter you assembled-- that one's already good, so improving it is exciting.

toneburst's picture
Re: Plasmoids!

Cheers! This new Voronoi version isn't very different, really, it just adds the ability to set colours, and I attempted to clean up the code a little.

a|x