src | ||
TeX | ||
LICENSE | ||
README.md |
Jam is visualization software for hard-core lattice particle systems. It is designed to explore configurations of particles while enforcing that no two particles overlap.
Jam is a work in progress and is nowhere near ready for production.
Basic usage
Run with
./src/jam [configuration_file]
where [configuration_file]
is an optional argument that specifies a file with
a list of particle positions that will be loaded on initial execution.
Dependencies
Jam is written in Python 3, and uses Kivy to run the GUI.
User interface
-
<right-click>
: create a new particle under the mouse pointer (if the particle fits) -
<shift><left-click>
: select/unselect multiple particles -
<left-click>
and drag: move selected particle(s). -
backspace
: delete selected particle(s)
Commands
Commands can be executed by typing :
(similarly to vim).
-
:q
: exit -
:w [path_to_file]
: Write particle configuration to file. This will not overwrite existing files; use:w!
to overwrite. -
:e <path_to_file>
: edit file. -
:export <path_to_file>
: Export configuration to LaTeX (using TikZ) -
:set color <color_spec>
: Set color of selected particles to<color_spec>
. The supported format for<color_spec>
is eitherr,g,b
withr
,g
, andb
in [0,1], or one ofred|green|blue|brown|lime|orange|pink|purple|teal|violet|cyan|magenta|yellow|olive|black|darkgray|gray|lightgray|white
. -
:set zoom <zoom_level>
: Scale all particles by<zoom_level>
. -
:set grid [on|off]
: Add a visual grid centered on one of the selected particles. The size of the mesh can be specified by passing:set grid <size_of_mesh>
.
Current developments
So far, Jam only supports cross-shaped particles, but work is in progress to
support arbitrary shapes consisting of rectangles, circle arcs and triangles
(check out the dev
branch to follow the progress).
Support for lattice configurations is also ongoing.
License
Jam is distributed under the Apache 2.0 License.
Copyright 2021-2023 Ian Jauslin