As part of an experimental game project I’ve been trying to use the Functy rendering routines to visualise network structures. At the moment it’s at a very early stage, but has - I think - already generated some interesting results.
The screenshot below shows a network of 60 nodes, each one rendered as a spherical co-ordinate function, joined together using links rendered as curves. I just plucked some simple functions out of the air to see what the results would be like but am hoping to extend it with more interesting shapes as things progress.
The various parts of the network are a little hard to discern with a static image, but when I tried to capture a video the result was a mess of fuzzy artefacts (I think there must be something going wrong with my screen capture software), so I gave up on that.
The next step, after neatening up the code, is to arrange better animation of the nodes and links, with dynamic movement based on things like the forces between the nodes. I’m hoping this will produce some really nice effects, and if anything comes of it I’ll put a bit more effort into getting a successful video capture.
A parcel arrived from Shapeways recently containing some of the 3D printed ring prototypes I generated using Functy. The models were exported directly from Functy and converted into STY format before being directly uploaded to Shapeways for printing. All based on sine/cosine curves, there’s a flat version, a slightly bulging version and an irregular version. Since Shapeways did such a brilliant job printing the prototypes, the next step is to get them to print them in silver. Click on the links if you fancy having your own printed!
The Functy function files for all of these rings are up in the repository and will be included as example files in the next full release.
I’m very pleased to announce the release of Functy 0.25. This new version includes a number of new features, improvements and bug fixes, including the following.
- Functy can now export models in Stanford Triangle Format (PLY) for use with modelling applications such as Blender and MeshLab.
- A bundle of new example files have been added to show off the curve rendering.
- The animation can now be paused using the space bar.
- The button bar can now be hidden by pressing ‘b’; especially useful when running in fullscreen mode.
- Shader compatibility has been improved (particularly if a function or its derivative uses exponents).
- The colour handling of the shader has been improved, so that similar colours are rendered by both CPU and GPU.
- Various performance improvements, for example when rendering the axes.
- Various bugfixes, including reversing the orientation of exported spherical functions for better consistency.
- The Symbolic library has also been updated to a new version.
Functy is available to download via the downloads page for Windows, Linux (x86, x64, ARM) and as a source archive. Functy is licensed under the MIT open source licence.
Although I’m hoping these improvements will make it even easier to use and more stable, there will inevitably be bugs, so please let me know if you find any.
I’m very pleased to announce the release of Functy version 0.24, which can now be obtained from the downloads page.
The main changes from the previous version are the following.
- Addition of the new curve function type. This complements the existing Cartesian and spherical functions by allowing parametric curves to be defined with cross-sections based on cylindrical co-ordinates.
- All function types can now be rendered either using the CPU (as before) or entirely using the GPU.
- GPU rendering provides per-pixel lighting calculated using the derived normal function (rather than using interpolated normals as used by most per-pixel algorithms).
- Available for Windows and Linux, and also as a new ARM Debian version for use with the Raspberry Pi.
Functy is still very much a work-in-progress, and won’t be entirely bug-free, so if you stumble across a problem or have any difficulty with it please let me know.
Having spent far too much of my weekend playing around with a Raspberry Pi, I’m pleased to say that this has at least resulted in a nice new ARM Debian package of Functy to run on the tiny credit-card-sized computer.
Even though the 3D graphics are a bit slow right now, I’m thoroughly impressed that the Raspberry Pi was happy to build and run Functy with practically no modification. I wasn’t expecting that!
There are more updates to Functy in the pipeline, but in the meantime, the new Raspberry Pi build (which even contains functionality not yet found in the other versions) can be downloaded from the downloads page.
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/
Well, after pretty much an entire day of shunting files around the network using more protocols than the EU, I can finally say that there’s a Functy release to show for it.
This is version 0.1, which means it’s a bit brittle and the paint is still drying. It also comes flatpacked, so you’ll have to build it yourself. But if you can get past all of that, it does just about work.
The packages can be downloaded at http://sourceforge.net/projects/functy/