Menu

Tree [c5744c] master /
 History

HTTPS access


File Date Author Commit
 dist 2025-02-26 Nicolas PARLANT Nicolas PARLANT [c5744c] Terminal=false
 evolvotron 2023-02-26 Karl Robillard Karl Robillard [b288eb] Add Linux desktop file and icons.
 evolvotron_mutate 2019-05-22 Tim Day Tim Day [c7221e] Fix config to build on jessie native qt5
 evolvotron_render 2022-12-15 Karl Robillard Karl Robillard [02e3a2] Fix Qt deprecated warnings. Qt 5.5 is now requ...
 experiment 2012-08-19 Tim Day Tim Day [d10cf6] Update copyright
 extras 2023-12-16 Karl Robillard Karl Robillard [673aae] evolvotron_complexity: Fix argument passing and...
 libevolvotron 2024-09-01 Karl Robillard Karl Robillard [1bc16a] dialog_about.cpp: Update link to Tim's home page.
 libfunction 2023-03-29 Karl Robillard Karl Robillard [120e8d] register_all_functions.cpp: Reflect what the up...
 man 2017-11-14 Tim Day Tim Day [f607ad] Apply typo fixes from Debian patches.
 sourceforge 2013-01-26 Tim Day Tim Day [5b210c] Remove odd sourceforge/files stuff (maybe relat...
 tools 2012-08-19 Tim Day Tim Day [d10cf6] Update copyright
 BUGS 2009-10-14 Tim Day Tim Day [c41b18] Quit on close restored. Seems to be related to...
 BUILD.sh 2019-05-22 Tim Day Tim Day [c7221e] Fix config to build on jessie native qt5
 Doxyfile 2023-02-27 Karl Robillard Karl Robillard [3b28a6] Fix Doxygen warnings.
 LICENSE 2003-01-17 Tim Day Tim Day [39caee] This commit was generated by cvs2svn to compens...
 NEWS 2025-01-27 Karl Robillard Karl Robillard [f85041] NEWS: Fix typo.
 README.md 2023-02-27 Karl Robillard Karl Robillard [9c0af0] Rename doxygen.cfg as Doxyfile (the Doxygen def...
 TODO 2017-11-13 Tim Day Tim Day [1e0b71] Notes; minor tweak for Debian Stretch boost.
 USAGE 2023-01-11 Karl Robillard Karl Robillard [a66477] MutatableImageDisplay: Allow mouse wheel to zoo...
 USAGE-update.sh 2023-02-03 Karl Robillard Karl Robillard [43514c] Add Boron text_to_markup.b script.
 VERSION 2024-04-24 Karl Robillard Karl Robillard [d4ecbe] Bump version to 0.8.2.
 cbuild 2023-02-26 Karl Robillard Karl Robillard [e1e5cf] Add Windows application icon.
 common.pro 2023-02-25 Karl Robillard Karl Robillard [b149a9] Replace deprecated QXmlSimpleReader with QXmlSt...
 evolvotron.html 2023-02-03 Karl Robillard Karl Robillard [43514c] Add Boron text_to_markup.b script.
 evolvotron.spec 2024-04-24 Karl Robillard Karl Robillard [7ba4cf] evolvotron.spec: Build with Qt 6.
 main.pro 2017-11-14 Tim Day Tim Day [b4c60d] Use CONFIG += ordered to enable parallel make.
 mkdeb 2013-01-05 Tim Day Tim Day [78eeee] Manage to wrangle another yaya build
 mktgz 2023-02-26 Karl Robillard Karl Robillard [c0c9d8] mktgz: Simplify to ensure all files get include...
 project.b 2023-04-09 Karl Robillard Karl Robillard [439c61] Support Qt 6.
 text_to_markup.b 2023-02-03 Karl Robillard Karl Robillard [43514c] Add Boron text_to_markup.b script.
 text_to_markup.py 2022-12-16 Karl Robillard Karl Robillard [5a2788] text_to_markup.py: Run with python2 as the scri...

Read Me

Evolvotron

Evolvotron is interactive "generative art" software to evolve
images/textures/patterns through an iterative process of random
mutation and user-selection driven evolution. If you like lava-lamps,
and still think the Mandelbrot set is cool, this could be the software
for you.

It uses C++, Boost, and the Qt GUI toolkit (v5.5 or later).
It's multithreaded (using Qt's threading API).

Home page: http://www.bottlenose.net/share/evolvotron

This file describes how to build evolvotron.
See the USAGE file for details of what the built executable can do.

If you manage to make practical use of evolvotron, especially
if evolvotron derived imagery makes it into print or other
mass media, I'd love to hear about it: please email!

Have fun
Tim

Screenshot

LICENSE

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

[The license should be in the LICENSE file in the same directory as this
README]

BUILDING

There's no reason it shouldn't work on any platform with a correctly
set up qmake. You do NOT need to be root (there is no install stage).

In the top level directory, you can either do

qmake "VERSION_NUMBER=x.x.x" main.pro
make

or just have both done for you by doing

./BUILD.sh

which will pick up the VERSION_NUMBER from the file VERSION in this directory.

Make will recurse into and build the libfunction & libevolvotron directories
(which is 99% of the work) and some additional subdirectories with
executables.

Among other things, this will give you an evolvotron
executable which you can run immediately with

./evolvotron/evolvotron

and/or copy where you like (there are no shared libs or "resource files"
needing additional attention).

See the USAGE file (or in-app manual) for instructions.

The author mainly tracks Debian stable.

Debugging builds

Many build failures are simply because the necessary Qt build tools
aren't in your path:

which qmake
which moc

should both find something.

If you have gcc/c++ compile problems problems:

If you have to change anything, the chances are it should be changed in
common.pro. Remember that any Makefiles you can see are generated
by qmake from .pro files and therefore hacking on the Makefiles is
generally a fruitless exercise.

Some source releases have had problems with other versions of gcc than
the ones I test on. A COMPLETE record of a failed build would be
appreciated (including the initial display of the gcc version).
If you can fix it, then patches would be even better!

INSTALL

The evolvotron sources don't try to provide an installer.
The assumption is that packagers will have a better idea of where
files should be copied to on their systems, and the tools to do it.
Doing make install will recursively descend into the various build
directories, but does nothing in each one.

The things you're likely to want to install are
(in order of interest):

The main executable and man page:

./evolvotron/evolvotron
./man/man1/evolvotron.1

User documentation (standalone version of the builtin manual):

USAGE

An HTML version of the above:

./evolvotron.html

Command-line driven tools and their man pages:

./evolvotron_render/evolvotron_render
./man/man1/evolvotron_render.1
./evolvotron_mutate/evolvotron_mutate
./man/man1/evolvotron_mutate.1

There are NO extra supporting files built
(e.g shared libraries, config files, "resource" files)
which need to be in special places for the software to work.

PACKAGING

There are a few things which might be useful to packagers:

mkdeb
- script to build .deb files (using the strangely unpopular
"yada", and pbuilder). This is used to build the .debs put
up on sourceforge, but the "official" Debian ones (and Ubuntu
derivatives) are more conventionally packaged by Gurkan Sengun.
Yada is obsoleted as of Debian's "Wheezy" release however.

evolvotron.spec
- For building RPM packages.

CODE DOCUMENTATION

If you have doxygen (and graphviz too) and want to build
the source code documentation, execute doxygen at the top level.
The documentation then appears in ./doc/html/.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.