June 2009 Archives
Binary packages of Functy 0.22 are now available in .deb and .rpm format. I threw these together this weekend without having a great deal of understanding of what I was doing, so it’s possible they’re just a mess and won’t work at all.
As I use Ubuntu I’m not able to properly test the rpm package. What’s more some corrupt files on my system are preventing apt from working properly, so I’m not even able to fully test the deb package either. It’s all a bit rubbish really, but they’re available anyway as I’m sure they’ll be a better place to start for many people. Fingers crossed they’ll work as expected, but if not I assume I’ll find out soon enough!
You can get the new packages from the SourceForge projects page page, or click on the downloads link in the sidebar.
I’m pleased to say that version 0.22 of Functy is now ready for release. Although this version does fix some bugs, the main improvement is that there’s now an automatic installer for Windows users.
Get it from the download page: http://sourceforge.net/project/platformdownload.php?group_id=259651
Release notes are also available: https://sourceforge.net/project/shownotes.php?group_id=259651&release_id=692280
Oops. After releasing version 0.2 I immediately found a couple of bugs! So version 0.21 is now available as a minor bug-fix release over 0.2.
You can get it from the download page: https://sourceforge.net/project/platformdownload.php?group_id=259651
Release notes are also available: https://sourceforge.net/project/shownotes.php?group_id=259651&release_id=690043
Functy is a 3D graph drawing package. The emphasis for the application is to allow Cartesian and spherical functions to be plotted and altered quickly and easily. This immediacy and the vivid results are intended to promote fun exploration of 3D functions. Functy can be built for GNU/Linux or Windows.
This 0.2 release is still beta, but has a number of improvements over 0.1 including:
- An improved user interface.
- New functions that can be used, such as cosh, atan, sec, exp, abs etc.
- Spherical coordinate plotting of functions.
- Various smaller bug fixes and changes.
To find out more or download the latest version, please visit one of the following pages.
Project web site: http://functy.sourceforge.net
Sourceforge project site: https://sourceforge.net/projects/functy/
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.
So far Functy has worked only using Cartesian co-ordinates, but I’m currently working on code for the next release to allow functions to be defined using spherical co-ordinates too.
Spherical function plotting is already working as you can see in the screenshot. It seems to produce some nice effects that are quite different from those you generally get using Cartesian functions.
The tricky part seems to be getting the code for both co-ordinate types integrated nicely together, and also sorting out a suitable user interface to allow them both to be added seamlessly.
The reason the code is turning out to be tricky is that I’m trying to develop using object oriented techniques, but using C rather than C++. I know it’s perfectly possible to do this (and do it well; although not necessarily by me!), and so far there hasn’t been much problem. However, I’m now in a situation where inheritance would seem to be the perfect technique to use. Most of the methods needed for the two co-ordinate systems are the same, so in C++ it would make sense to use some virtual interfaces to define them and inherit these from a generic function type. Unfortunately I’m not sure if this is going to work well in C.
It seems like a silly thing to get stuck on and it would be nice to get the spherical functionality into the next build. I’m hoping the best method will become clearer as things progress.
If you’d like to help improve Functy there are loads of ways you can, be it by coding, designing, translating, scripting or just generally being creative. Take a look at the Contribute page that’s just been added if you want to find out how, or wander over to the Contributors page to see who already has.
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.