Skip to content

Releases: ef-gy/libefgy

Release 7: Preview the Rainbow

04 Dec 15:37
Compare
Choose a tag to compare

This release features a new fractal flame colouring algorithm... and I'm getting ever so much closer to doing 4D+ transforms generically on the GPU instead of on the CPU :D. Also trying to see if we can make awesome pretty pictures using attractors, and after a lot of cleanups I found some time to add the formula for Dinis' Surface to the list of stock models.

The JSON code has also gotten a lot of use in, recently. I can see there's room for improvement there, though.

Have some screenshots of Topologic using these new thingies:

new-fractal-flame-colouring
screen shot 2014-12-04 at 3 03 54 pm
attractors
chrome-app

Enjoy, and usual: this is kind of Beta-ish, but if you feel you have some good ideas for additions just send out a merge request and we'll see about that :).

Release 6: Overhauls and Geometry

02 Feb 21:29
Compare
Choose a tag to compare

This sixth release of the library primarily updates geometry code: parametric surfaces, trigonometric functions, arbitrary coordinate systems for models, vectors and a simple GLSL synthesiser. S-expression classes have also been added, and documentation has been improved. The number of Doxygen warning lines is now finally under a thousand.

Features

Overhauled Vectors

The vectors have been modified quite a bit. There are no more 'space' classes, so the the vectors now instead take a format tag, which determines the coordinate system - and to some degree the semantics - of a vector. See the new math::vector class for details.

Arbitrary coordinate system for models

The aforementioned coordinate system tags can now be specified for models as well as plain vectors. This allows for some very interesting effects.

Overhauled parametric surfaces

The geometry::parametric class has been overhauled to take a simple formula functor class, which describes the operation to perform and greatly reduces the amount of code necessary to specify new models based on it.

GLSL synthesiser

GLSL shaders are now produced by a very simple synthesiser, which will be expanded upon in a future release to automatically perform 4D and higher transformations in shaders.

Trigonometric functions

The previously removed trigonometric functions have been added back in, and a few new functions have also been added.

S-expression container classes

This release adds a few classes to contain S-expressions and write them out to streams; this will be expanded upon in a future release to also allow parsing of S-expressions.

New models: torus and klein bottle

This release adds standard parametric formulas for the torus and klein bottle. In light of this, the number of parameters that can be used by models have increased slightly. The tori look really interesting when using a polar base coordinate system.

Release 5: the one wherein there was much rejoycing

17 Jan 12:58
Compare
Choose a tag to compare

This fifth release of libefgy contains unusually many changes. This could be due to our team recently getting a new team member, dawehner. Daniel started out by pushing for some additional statistics functionality and quickly made use of that in some test cases. The list of added functionality is thus getting rather impressive:

Features

This release brings us back to being mostly about maths and doing things at compile time. Huzzah!

Sequences, Series and Power Series

The code now contains the two additional header files 'sequence.h' and 'series.h', which implement functionality for sequences and series, respectively. 'pi' and 'e' have been updated to use these templates. The functions in 'trigonometrics.h' have been removed for this release, as the interface would need to change and things would've gotten tight.

Geometric Primitive Factory

Topologic contained a factory that, given a model name - "cube" - a model dimension - 4 - and a render dimension - 4 - at runtime, would be able to resolve that data to a geometry template and appropriate parameters for that - such as a tesseract. This functionality has been expanded and merged into libefgy, so that adding new models to libefgy will no longer require modifying Topologic - or any other frontend you may envision in the future.

Statistics

As I pointed out in the introduction, Daniel pushed for some additional statistics functionality in 'statistics.h'. It's not all that much just yet, but it's getting there.

Stream Operators

The integer-to-string conversion helper function has been removed; the big integer and fractional templates now provide the much more C++-y stream output operator, which can be used with a std::stringstream to get the same effect. Numeric data types can no longer be cast to std::string, either, for the same reason.

Support for Base Data Types

Most of the templates used to require the use of the 'primitive' template when you wanted to use a C++ base data type (such as 'double'). This has been fixed. A 'traits' template has been introduced to help with cases where additional data is needed for a data type to pick the right kind of algorithm.

Cleanups/Documentation

We've spent quite a bit of time cleaning up old gunk that crept in all over the place. This should be the first truly 'clean' release, which is something I'm rather fond of. Documentation is still lacking in some places, but it's definitely getting there. Current documentation is, of course, still available at http://ef.gy/documentation/libefgy

Removed Functionality

This time I finally got around to removing the 'set.h' header, and the 'trigonometrics.h' and 'geometry.h' are currently gone and stubbed as well. The latter functionality will be added back in a future release, but the sets are dead for good.

Release 4

14 Dec 16:42
Compare
Choose a tag to compare

This release only adds some minor new features, such as the vt100 terminal code and a matrix animation demo, but it greatly improves the current state of the source code documentation. Additionally, a lot of code has been rewritten to use standard C++11 features.

Release 3

31 Oct 14:22
Compare
Choose a tag to compare

Adds code for random affine IFSs, fractal flames, an improved OpenGL 3.2/OpenGL ES 2.0/WebGL 1.0 renderer used in Topologic, a custom Mersenne Twister implementation, documentation and test cases. There's also been quite a few cleanups. And the code is now available via Github or Google Code if you prefer to get your code via those sites - well you probably noticed that if you read these here release notes.