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 ```bash ./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. # User interface * ``: create a new particle under the mouse pointer (if the particle fits) * ``: select/unselect multiple particles * `` 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 `: edit file. * `:export `: Export configuration to LaTeX (using TikZ) * `:set color `: Set color of selected particles to ``. The supported format for `` is either `r,g,b` with `r`, `g`, and `b` in [0,1], or one of `red|green|blue|brown|lime|orange|pink|purple|teal|violet|cyan|magenta|yellow|olive|black|darkgray|gray|lightgray|white`. * `:set zoom `: Scale all particles by ``. * `: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 `. # 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