Local web GUI for rendering crystal structures as publication-ready figures.
Project description
Pretty Lattice
Pretty Lattice is a crystal visualization tool for creating beautiful, publication-ready figures.
- Pretty: tasteful defaults for colors, materials, lighting, and depth
- Simple: an intuitive browser GUI for loading, viewing, and exporting structures
- Reliable: structure parsing and analysis powered by the mature pymatgen package
- Scalable: smooth interaction with systems up to 10k atoms
- Customizable: tune colors, radii, materials, opacity, orientation, and export settings
Why
I always find it harder than it should be to make a good-looking crystal figure.
Traditional crystallographic tools such as VESTA are powerful, but their visual defaults often feel outdated: harsh color palettes, low-quality 3D shading, and a lot of manual tweaking before the result looks acceptable. You could import the structure into professional 3D software such as Cinema 4D or Blender, but that feels like overkill and comes with a much steeper learning curve.
Pretty Lattice is my attempt to fill that gap. Built on Three.js, it stays (relatively) lightweight without compromising visual quality. It offers a modern, intuitive interface with familiar controls researchers expect, and produces clean, aesthetically pleasing figures out of the box.
Install
pip install pretty-lattice
Or install as an isolated tool with uv:
uv tool install pretty-lattice
Requirements:
- Python 3.12+
- macOS, Linux, or Windows
- Any modern browser
Quick start
prl gui
Pretty Lattice starts a local server and opens the browser automatically.
Useful launch options:
prl gui --no-open # start the server without opening a browser
prl gui --port 8765 # use a specific port
prl gui -p 0 # choose any free port automatically
Examples
Material presets
Color scheme presets
License
Pretty Lattice is released under the MIT License.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pretty_lattice-0.1.0.tar.gz.
File metadata
- Download URL: pretty_lattice-0.1.0.tar.gz
- Upload date:
- Size: 7.7 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
81281c5fe12890168e81fff98abb50188350dd322465db6b3f534bbd2f7fac8f
|
|
| MD5 |
12595d74de8298ca530987684d3f9a5c
|
|
| BLAKE2b-256 |
d7b1358b78379ed1b02f5576a1700636b44c2a52a5051a32d6949bc73c428686
|
File details
Details for the file pretty_lattice-0.1.0-py3-none-any.whl.
File metadata
- Download URL: pretty_lattice-0.1.0-py3-none-any.whl
- Upload date:
- Size: 1.4 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a3b0b8ee86788a53ac7c3306ed9ade8cbd08a8947515194914ada0550a93dbf5
|
|
| MD5 |
103aaa9e624cfef496f1dd56a22c68a3
|
|
| BLAKE2b-256 |
6bdba64885b5ffc54a8a4543268dd21edec121d09bd1c5d2c4b2c67a348c28e6
|