Following on from my previous post, I thought it’d be interesting to make an animated render of the Lissajous figure. If you have an APNG-capable browser (e.g. Firefox) you can see the result on DeviantArt.
While it’s neat to be able to print static versions of these Lissajous figures, in the future I’m sure it’ll be possible to make the fully moving version as well. Now that would be really something!
I finally managed to get the video to record properly, so here’s a video version of the shader-based depth-of-field focus-blur.
P.S. This post was actually made using Ubuntu phone. The browser’s still a bit “experimental” so it’s been a bit tricky, but it does seem to work!
The latest version of Functy in the repository now has a (roughly) working version of the curve rendering code. This allows a cylindrical coordinate cross section to be extruded along the length of a parametrically defined curve. In other words, something like a tube.
The code is fairly incomplete. Trying to define functional colours will cause a crash, and vertices are all positioned on the CPU, so that animation isn’t particularly efficient. Both of these should be fixed soon, including GPU rendering of the entire curve.
Here’s a brief video demo of this early code to give a flavour of how it can be used.
Time for another demo video. This time I’ve tried to create a 2D function on a 3D surface by playing around with the colours of some function.
In the 90s I used to love watching clever computer demos. One of the visual effects that was sometimes used was that of viscous circles or spheres that would meld together when they moved close one another. This created the kind of effect you get with a lava lamp. In this demo I try to recreate this effect using a couple of functions and a computer that’s probably several thousand times more powerful than the ones the demos ran on. Does the resulting effect work? See for yourself!
I do apologise though for the terrible delivery.
Here’s a short video to demonstrate how you could use Functy to create an island scene. Three functions are used: one for the islands themselves, another for the wavy sea and finally a third function for the clouds in the sky above.
It was actually for the creation of landscapes like this that I first developed Functy, as I thought it would be a neat and easy way to create infinite landscapes. This may not be the best demonstration of this and I’m hoping to improve on it in the future. For example, the waves are a bit uniform and the colours a bit garish.
A function file for these islands is included with Functy if you want to have a play around with it and make some improvements.
Here’s a short video I made explaining how to use some of Functy’s functions. Functy’s all about functions after all. I can only apologise for the cringeworthy delivery; I really don’t have the voice for radio. If you think you can stand it, hit the play button below.
One thing I should probably mention is that this video was creates using Functy version 0.1. I’ve subsequently made some changes to how the modulus function works, so you won’t be able to use the functions in the demo to get the same effect in the svn version. You can still do it, you just need to enter things slightly different.
In case you’re interest, modulus was changed from being integer based to using floading point numbers. Ultimately I think this makes more sense.
Time for another short video and this time it’s a bit more psychedelic.
The functions used here are just some simple sines and cosines as always. The x-axis has a cosine wave that moves up and down with respect to time. Cutting across it along the y-axis is another cosine wave just with a shorter cycle to create a corrugated look. Finally a few crazy pink stripes add to the psychedelia.
This was a really quick and easy function to create, and although I wouldn’t want to watch it for very long, I think the result is quite striking nonetheless. It reminds me of plasticine!
Functy allows you to use simple animation by adding a time variable t to your function. Here’s a short video that shows a couple of overlapping sine/cosine based surfaces used to create a simple animation effect.