Install • Quickstart • Development • License • Acknowledgement
jaxogo turns any string into an SVG logo in the style of the JAX
logo: letters built from cubes, drawn in isometric projection with matplotlib's mplot3d.
jaxogo("JAX") reproduces the JAX logo exactly.
Install
pip install git+https://github.com/lawrenceberry/jaxogo.git
Quickstart
from jaxogo import jaxogo
svg = jaxogo("jaxogo", "jaxogo.svg") # returns the SVG text and writes it to jaxogo.svg
That draws the logo at the top of this page. Neighbouring letters are joined, sharing a stroke where they fit together as the J, A and X of the JAX logo do; a space keeps words apart.
Options:
palettes: one(top, front, side)colour triple per letter, cycled along the string. The default is the blue, teal and purple of the JAX logo.edge_color: the colour of the cube outlines.ligatures=False: space the letters apart instead of joining them.
jaxogo("hello world", "hello_world.svg")
jaxogo("numpy", "numpy.svg", palettes=[("#f7c948", "#b8860b", "#daa520")])
uv run examples/generate_examples.py writes logos for jaxogo, hello world, modax and a
dozen JAX-based libraries (Flax, Optax, Equinox, Diffrax, …) into examples/.
Development
uv run pytest
uv run pre-commit install # once: run ruff linting and formatting on every commit
The tests compare jaxogo("JAX") polygon by polygon against the original logo in
tests/data/jax_logo.svg.
The JAX logo is a real 3D voxel model seen from an isometric camera rolled by 30°, so the x axis is horizontal, the y axis rises at 60° and the z axis at 120°. Its J lies flat on the ground; its X is a bar along y crossed by a tower along z; and its A has no strokes of its own apart from the crossbar, borrowing the J's stem as its left leg and the X's tower as its right.
src/jaxogo/_font.pyis a five-row voxel font. Glyphs are ASCII bitmaps in the ground plane, and\strokes can be lifted into towers like the X in the logo.src/jaxogo/_logo.pylays out the glyphs, joins neighbouring letters, colours each letter's top, front and side faces with a cycled palette, and renders the exposed faces as aPoly3DCollectionwith an orthographicmplot3dcamera.
License
jaxogo is released under the MIT License.
Acknowledgement
The style of jaxogo comes from the JAX logo,
whose design belongs to the JAX authors. jaxogo recreates that design with its own code but does not
own it, and is an independent project that is not affiliated with or endorsed by the JAX project or
Google. The copy of the logo in tests/data/jax_logo.svg, used to test that jaxogo("JAX")
matches it, comes from the JAX repository and is used under its
Apache License 2.0.
Metadata
Release files for jaxogo 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| jaxogo-0.1.0.tar.gz | 73.4 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| jaxogo-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 84.4 kB
Release files / jaxogo-0.1.0.tar.gz
| Download URL | jaxogo-0.1.0.tar.gz |
|---|---|
| Size | 73.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3474f0faf05f915418f12d67566de56a087d897c7c3263a2a2996247856dfba6
|
|
BLAKE2b-256 checksum How to use checksums |
c66ae0b2c66a188ebfa428729bd97598eebd0dfd4f9e9ac9d1b53cba6ee0e37a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.
Transparency logRelease files / jaxogo-0.1.0-py3-none-any.whl
| Download URL | jaxogo-0.1.0-py3-none-any.whl |
|---|---|
| Size | 10.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e8ee32e659e9caedea8e4f42b3bdcbd63704acd4fe19488a46e329e389063cf7
|
|
BLAKE2b-256 checksum How to use checksums |
d57621033b41be47bb440de50921e84727669f3008bad686b41647e916b28eee
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.
Transparency logSecurity for jaxogo 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for jaxogo-0.1.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.