Code Monkey home page Code Monkey logo

gnofract4d's Introduction

About this Program

Gnofract 4D is a program for drawing beautiful mathematically-based images known as fractals. See the manual for more details.

The most recent version may be obtained from https://github.com/fract4d/gnofract4d

Examples, screenshots etc are at https://fract4d.github.io/gnofract4d

Basic Installation

Run:

./setup.py build

You can then run Gnofract 4D in the local directory:

./gnofract4d

Alternatively to build and install Gnofract 4D type:

pip3 install gnofract4d-4.3.tar.gz

You can then run it by clicking on the desktop icon or typing:

gnofract4d

Requirements

Gnofract 4D requires these packages to run:

  • Python version 3.6 or higher
  • GTK version 3.18 or higher
  • Pycairo
  • PyGObject to access GTK from Python
  • A C++ compiler (used at runtime to compile your fractal formulas)

On Ubuntu, these can be installed with:

sudo apt install gcc gir1.2-gtk-3.0 python3-gi-cairo

To build from source you also need:

  • headers for libpng and libjpeg
  • Python headers
  • pkg-config

On Ubuntu, these can be installed with:

sudo apt install libjpeg-dev libpng-dev libpython3-dev pkg-config

If FFmpeg is installed it will be possible to create videos.

On macOS, you can install the dependencies using brew:

brew install librsvg python3 pkg-config cairo gtk+3 pygobject3 py3cairo libpng jpeg

Testing

Testing requires pytest for Python 3. In some distributions, 'pytest' is for Python 2. Run

pip3 install pytest

To get the latest.

Run individual tests from the top-level directory using pytest, e.g.: pytest fract4d/test_absyn.py

Optionally, install tox and test with all supported Python versions by running: tox

On macOS you might find an error regarding the number of opened files, you can increase the system limit with ulimit -Sn 10000

Linting

Pylint is being used to detect code that doesn't follow the PEP8 style guide and potentially erroneous code in Python. You can run it in two ways:

  • Directly (firstly you should install pylint through pip3):

    $ pip3 install pylint $ ./bin/pylint.sh

  • Using docker (same environment as pipeline):

    $ ./docker/bin/run_lint.sh

Generating Documentation

You can only regenerate the docs if you clone the Gnofract 4D git repo - the source dist packages contain the generated docs but not the input files for the generation process. To regenerate the docs:

  1. Make sure you're starting from a git clone not a source .zip - you need the files under manual/content
  2. The documentation theme is managed in a separate repository and embedded in manual/themes/book as a submodule. Initialize and update it with git submodule update --init
  3. Install hugo
    • Ubuntu 18.04 has an older version. Run snap install hugo --channel=extended instead of apt install hugo
    • For macOS you can install with brew install hugo
  4. Run ./createdocs.py

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.