Project description
Double Pendulum Using Curses in Python.
A nice relaxing double pendulum simulation using ASCII, able to simulate multiple pendulums at once, and provide tracing of pendulums as well as providing some system information.
If you spot any bugs or features that need adding (especially with the specs), just open an issue :)
Features
As mentioned, able to simulate multiple pendulums at once.
Able to specify the weight and mass of pendulums to create different butterfly effects.
Uses equations from here.
If -s is used, it grabs system specs and displays them.(hi r/unixporn)
Obviously a lot could be done to it (see below the Args), Any contributions are appreciated)
Quickstart:
Dependencies: Python 3.2+,curses (standard on UNIX) or relevent windows port, psutils if you want to use -s
Github
Clone using https://github.com/Nekurone/double-pendulum-ascii.git
or download the zip.
Extract if necessary and head inside the folder.
python3 pendulum.py [args]
Pip
python3 -m pip install double-pendulum
(or pip install double-pendulum
)
double-pendulum [args]
Args
Visuals
Maths and Pendulum settings
Window settings
Visuals
--help (-h)
Spits out a fairly standard argparse help message. Note this is printed out when the program is run anyway.
type: None, default: None
setting in example: -h
--trace (-t)
Enables 'tracing', a faint line behind the pendulums that fades.
type: bool, default: off,
setting in example: -t
--traceDrop (-tD)
Controls the rate at which the trace from -t fades. Higher is faster fading.
type: float, default: 1.0,
setting in example: -t -tD 0.5
--specs (-t)
Enables showing system info, note this feature is still a WIP, any bugs or issues just let me know.
type: bool, default: off,
setting in example: -s
Maths and Pendulum Settings
--pendulum (-p)
Number of pendulums to simulate at once. Combine with the gravity settings and some speed settings for some really pretty visuals.
type: int, default: 1,
setting in example: -p 300
--speed (-sP)
Multiplier for speed of simulation. Around 0.5-1.5 is a good range
type: float, default: 1.0,
setting in example: -sP 3.0
--gravity(-g)
Controls the strength of gravity, note, this directly affects the speed of the simulation. So slowing down is recommended.
type: float, default: 9.81,
setting in example: -g 1
--mass (-m)
Controls the mass of the pendulums, useful mostly for butterfly effects
type: float, default: 100.0,
setting in example: -m 300 -sP 0.2
--length (-l)
Controls the length of the arms of the pendulums, useful mostly for butterfly effects
type: float, default: 250.0, setting in example: -l 150 -sP 0.3
todo: Window settings
If you have any suggestions, or anything you'd like to add (or, more likely you found a bug) just open a PR :)
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages .
Source Distributions
Built Distribution
File details
Details for the file double_pendulum-1.2.1-py3-none-any.whl
.
File metadata
Download URL:
double_pendulum-1.2.1-py3-none-any.whl
Upload date: Aug 4, 2021
Size: 8.8 kB
Tags: Python 3
Uploaded using Trusted Publishing? No
Uploaded via: twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.9.6
File hashes
Hashes for double_pendulum-1.2.1-py3-none-any.whl
Algorithm
Hash digest
SHA256
f8e28c8985568c2449d4d8df4102d5433240a12a169ce18c6fd67d7242938829
Copy
MD5
2cec8bb95324d779c082b4e68d209941
Copy
BLAKE2b-256
57135f36526f8a16acd771a15a3d0949d6240035429c4ad1aa1133e0839bd17e
Copy
See more details on using hashes here.