Skip to main content

Local web GUI for rendering crystal structures as publication-ready figures.

Project description

Pretty Lattice logo Pretty Lattice

Pretty Lattice is a crystal visualization tool for creating beautiful, publication-ready figures.

Build status Python 3.12+ License: MIT

  • 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

Pretty Lattice interface preview

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

SrTiO3 material preset examples

Color scheme presets

Ba2Ca2Cu3HgO8 color scheme examples

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

pretty_lattice-0.1.0.tar.gz (7.7 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pretty_lattice-0.1.0-py3-none-any.whl (1.4 MB view details)

Uploaded Python 3

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

Hashes for pretty_lattice-0.1.0.tar.gz
Algorithm Hash digest
SHA256 81281c5fe12890168e81fff98abb50188350dd322465db6b3f534bbd2f7fac8f
MD5 12595d74de8298ca530987684d3f9a5c
BLAKE2b-256 d7b1358b78379ed1b02f5576a1700636b44c2a52a5051a32d6949bc73c428686

See more details on using hashes here.

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

Hashes for pretty_lattice-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a3b0b8ee86788a53ac7c3306ed9ade8cbd08a8947515194914ada0550a93dbf5
MD5 103aaa9e624cfef496f1dd56a22c68a3
BLAKE2b-256 6bdba64885b5ffc54a8a4543268dd21edec121d09bd1c5d2c4b2c67a348c28e6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page