Skip to content

gouarin/splinart-cpp

Contributors Stargazers Issues MIT License


Text changing depending on mode. Light: 'So light!' Dark: 'So dark!'

A project to illustrate the use of development tools and their automation with GitHub Actions
Explore the docs »

Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Contributing
  5. License
  6. Contact
  7. Acknowledgments

About The Project

The development of open-source software for numerical simulation is becoming an increasingly important part of the research process. It enables numerical methods to be validated, new algorithms to be developed and methods to be appropriated and enriched by anyone. Opening up our research codes is also part of the open science approach, and it's not a question of "just" putting an archive with the sources on a web page.

The philosophy and structure of a piece of software emanate from its precursors and evolve as different contributions are made. However, to ensure that this architecture does not collapse at the slightest change, a framework is necessary. Setting up such a framework is a constraint. It's a question of supporting contributors in these new practices and finding the compromise between a restrictive framework and giving free rein to creativity.

During the development process, many tasks are repetitive and can be the source of errors or application regressions. These include unit testing, code formatting, errors that may be revealed during static analysis, documentation generation and the creation of new versions when the application is distributed via packaging systems (pypi, conda, vcpkg, spack, nix, guix, etc.).

This directory is the end result of a workshop describing each of the tools that can greatly facilitate the development process and interaction with all the players involved in an open-source project. It also describes a development framework that is validated using GitHub Actions.

The workshop is here: https://github.com/gouarin/dev_env_and_automatisation

We're going to use a ready-to-use C++ code that creates generative art from the equation of a circle and splines. This program displays renderings of the following type

Screenshot

The basic idea comes from inconvergent website.

(back to top)

Getting Started

Prerequisites

If you want to try locally this project, you have to install pixi.

If you are on linux or macos

curl -fsSL https://pixi.sh/install.sh | bash

if you are on Windows

iwr -useb https://pixi.sh/install.ps1 | iex

Installation

From source

  1. Clone the repo
    git clone https://github.com/gouarin/splinart-cpp.git
  2. Install the dependencies
    pixi install
  3. Build and run
    pixi run start

With conda

  1. Create a new environment
    pixi init
  2. Add gouarin channel in the pixi.toml file
  3. Install splinart-cpp
    pixi add splinart-cpp
  4. Run
    splinart-cpp

(back to top)

Usage

Once the project is installed on your system, you have access to the splinart-cpp program. This has several options for modifying the final rendering.

  • Print help

    splinart-cpp --help
  • Choose the number of circles

    splinart-cpp --nb-circles 10
  • Random colors

    splinart-cpp --random-color

(back to top)

Contributing

First off, thanks for taking the time to contribute! Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make will benefit everybody else and are greatly appreciated.

Please read our contribution guidelines, and thank you for being involved!

(back to top)

License

Distributed under the MIT License. See LICENSE for more information.

(back to top)

Contact

Loic Gouarin - @lgouarin - loic.gouarin@gmail.com

Projects Link: https://github.com/gouarin

(back to top)