Skip to content

afolkest/elliptica

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

345 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Elliptica

Electrogenesis

Elliptica UI

What is this?

Elliptica is a program for making 2d visual arts using electrostatics (the Laplace equation). You place objects on a canvas, impose voltage boundary conditions on them, solve a partial differential equation, and then visualize the resulting vector fields using a technique known as Line Integral Convolution (LIC).

The software contains various useful things that lets you iterate on your pieces without leaving the software, such as OKLCH color palette creation and postprocessing effects.

This is a prototype: not actively developed, buggy, but fun

This was my first attempt at a larger project 100% coded by LLMs and if you look at the code it shows.

I've moved on to doing a complete low level rewrite in Metal, since the framework choices made here (DearPyGui + PyTorch) are fundamentally incompatible with real time interactivity (given the algorithms we're working with here). I will not be adding any more features in the prototype, although I'm open to fix reported bugs.

Quick Start

pip install -r requirements.txt
python -m elliptica.ui.dpg

System Requirements

  • Python 3.11+
  • GPU (optional): Apple Silicon (MPS) or NVIDIA (CUDA) - falls back to CPU (probably quite slow)

Installation

git clone https://github.com/afolkest/elliptica.git
cd elliptica
python3 -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate
pip install -r requirements.txt
python -m elliptica.ui.dpg

License

MIT.

About

Drawing program based on elliptic partial differential equations

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages