diff --git a/.gitignore b/.gitignore
index 37eeaa7a..a21532cc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -36,3 +36,4 @@ cpp/bindings/pipelines-src
.dolt/
*.db
.beads-credential-key
+.kiro
\ No newline at end of file
diff --git a/CONTINUITY.md b/CONTINUITY.md
new file mode 100644
index 00000000..fbca1dd3
--- /dev/null
+++ b/CONTINUITY.md
@@ -0,0 +1,51 @@
+# Snapshot
+- 2026-08-26 [USER] Recreate `logo.png` as a reproducible TikZ logo, generating PDF and SVG; exact raster aspect ratio is not required.
+- 2026-08-26 [USER] Remove all visible H1 headings from the docs landing page.
+
+# Done (recent)
+- 2026-08-26 [CODE] Superseded the unavailable Material helper class with native `
`, removing the visible `evalio` heading.
+- 2026-08-26 [CODE] Suppressed Material's injected “About” heading with an accessible, visually hidden landing-page H1.
+- 2026-08-26 [CODE] Moved the README tagline into the centered logo block while preserving its emphasized acronym.
+- 2026-08-26 [CODE] Centered both docs logo image display modes and the immediately adjacent tagline paragraph.
+- 2026-08-26 [CODE] Centered the README logo with GitHub-compatible alignment and the docs logo with `margin-inline: auto`.
+- 2026-08-26 [CODE] Added adaptive logos to `README.md` via `` and to the docs landing page via Material palette-aware CSS.
+- 2026-08-26 [CODE] Replaced the same-color IMU `\shade` with `\fill[ink]`, preventing dvisvgm from dropping the center rectangle.
+- 2026-08-26 [CODE] Added a `\darklogo` compile flag; `just logo` now builds dark-ink `logo.*` and light-ink `logo-dark.*` assets.
+- 2026-08-26 [CODE] Added `just logo`, generating `docs/assets/logo.pdf` and `docs/assets/logo.svg` and removing LaTeX auxiliary files.
+- 2026-08-26 [CODE] Replaced white marker/body strokes with true geometric gaps: calculated ring arcs, clipped IMU pins, and an inset chip body.
+- 2026-08-26 [CODE] Added a 1pt white outline to the central IMU body and regenerated both vector outputs.
+- 2026-08-26 [CODE] Superseded the segmented-ring experiment: restored the ring and IMU pins, with white outlines on orange returns.
+- 2026-08-26 [CODE] Replaced shaded lidar returns with flat orange discs and redrew the IMU using slimmer pins and explicit axis geometry.
+- 2026-08-26 [CODE] Added `logo.tex`, a tightly cropped standalone TikZ recreation of the lidar ring, returns, IMU glyph, and wordmark.
+- 2026-08-26 [TOOL] LuaLaTeX generated `logo.pdf`; dvisvgm generated portable `logo.svg` with an embedded WOFF2 wordmark font; rendered preview verified.
+- 2026-08-25 [CODE] Migrated docs to Zensical: dev deps swapped for `zensical` + mike fork; `mkdocs-gen-files` replaced by `scripts/gen_docs.py`; CI builds via `zensical build`. Site verified locally (tables, KaTeX, admonitions, mkdocstrings, version selector).
+- 2026-08-25 [CODE] Zensical quirk: pipe table needs a blank line before it; generator writes `intro\n\n` to satisfy it.
+- 2026-08-25 [CODE] Generator lives outside `docs_dir` (`scripts/`) so Zensical doesn't publish it into `site/`.
+
+# Working set
+- `justfile`
+- `README.md`
+- `docs/index.md`
+- `docs/css/tweaks.css`
+- `docs/assets/logo.tex`
+- `docs/assets/logo.pdf`
+- `docs/assets/logo.svg`
+- `docs/assets/logo-dark.pdf`
+- `docs/assets/logo-dark.svg`
+
+# Receipts
+- 2026-08-26 [TOOL] `uv run mkdocs build --strict` passed; homepage contains `
evalio
` and no injected “About” H1.
+- 2026-08-26 [TOOL] `uv run mkdocs build --strict` passed; built homepage has only `
evalio
` and no “About” H1.
+- 2026-08-26 [TOOL] `uv run mkdocs build --strict` passed; generated CSS includes image auto margins and centered adjacent-paragraph styling.
+- 2026-08-26 [TOOL] `uv run mkdocs build --strict` passed after centering; generated `tweaks.css` contains the auto-margin rule.
+- 2026-08-26 [TOOL] `uv run mkdocs build --strict` passed; built index references both SVGs, palette CSS is published, and both assets are present in `site/assets/`.
+- 2026-08-26 [TOOL] Rebuilt both variants; SVGs now contain the rounded IMU body in `#181e24`/`#f5f7fa` and render correctly on light/dark backgrounds.
+- 2026-08-26 [TOOL] Both PDF/SVG variants validated and rendered correctly on white and `#10151B` backgrounds; SVG ink colors are `#181e24` and `#f5f7fa`.
+- 2026-08-26 [TOOL] `just logo` completed; both docs assets validate, SVG contains no white paint, and `docs/assets/` contains no auxiliary files.
+- 2026-08-26 [TOOL] Rebuilt PDF/SVG, confirmed `logo.svg` contains no white paint, and previewed the transparent gaps on white and purple backgrounds.
+- 2026-08-26 [TOOL] Previewed the outlined IMU body; LuaLaTeX and dvisvgm completed successfully.
+- 2026-08-26 [TOOL] Rebuilt and previewed restored geometry with 2pt white outlines on orange lidar returns; PDF/SVG conversion succeeded.
+- 2026-08-26 [TOOL] Rebuilt and previewed PDF/SVG with transparent marker spacing; no background-colored halo is baked into either asset.
+- 2026-08-26 [TOOL] Rebuilt PDF/SVG after the glyph refinement; raster preview confirms clean flat markers and non-overlapping coordinate axes.
+- 2026-08-26 [TOOL] `logo.pdf` is one 497.975x136.885 pt vector page; `logo.svg` converted successfully with dvisvgm 3.2.1.
+- 2026-08-25 [TOOL] Zensical documentation confirms `mkdocs.yml`, KaTeX, mkdocstrings, and versioned docs compatibility; `mkdocs-gen-files` issue #8 is open.
diff --git a/README.md b/README.md
index b4876076..f414947c 100644
--- a/README.md
+++ b/README.md
@@ -1,9 +1,21 @@
-## evalio
-
-evalio is a tool for **Eval**uating **L**idar-**I**nertial **O**dometry.
+
+
+
+
+
+
+
+
+
+
+
+
evalio is a tool for Evaluating Lidar-Inertial Odometry.
+
+
Specifically, it provides a common interface for connecting LIO datasets and LIO pipelines. This allows for easy addition of new datasets and pipelines, as well as a common location to evaluate them making benchmarks significantly easier to run. It features,
- No ROS dependency! (though it can still load rosbag datasets using the wonderful [rosbags](https://ternaris.gitlab.io/rosbags/) package)
+- 8 compiled in LIO pipelines and 12 configured datasets.
- Easy to add new datasets and pipelines, see the [example](https://github.com/contagon/evalio-example)
- Unified representation of lidar scan, e.g. row (scan-line) major order, stamped at the start of the scan, point stamps are relative from the start of the scan.
- Download and manage datasets via the CLI interface
diff --git a/docs/assets/logo-dark.pdf b/docs/assets/logo-dark.pdf
new file mode 100644
index 00000000..517f7402
Binary files /dev/null and b/docs/assets/logo-dark.pdf differ
diff --git a/docs/assets/logo-dark.svg b/docs/assets/logo-dark.svg
new file mode 100644
index 00000000..d0f9f9ea
--- /dev/null
+++ b/docs/assets/logo-dark.svg
@@ -0,0 +1,40 @@
+
+
+
\ No newline at end of file
diff --git a/docs/assets/logo.pdf b/docs/assets/logo.pdf
new file mode 100644
index 00000000..edcd2d9d
Binary files /dev/null and b/docs/assets/logo.pdf differ
diff --git a/docs/assets/logo.svg b/docs/assets/logo.svg
new file mode 100644
index 00000000..a0ab2ffb
--- /dev/null
+++ b/docs/assets/logo.svg
@@ -0,0 +1,40 @@
+
+
+
\ No newline at end of file
diff --git a/docs/assets/logo.tex b/docs/assets/logo.tex
new file mode 100644
index 00000000..f708ccfa
--- /dev/null
+++ b/docs/assets/logo.tex
@@ -0,0 +1,44 @@
+% Define \darklogo before input to use light ink on dark backgrounds.
+\documentclass[tikz,border=3pt]{standalone}
+
+\usepackage{fontspec}
+
+\ifdefined\darklogo
+ \definecolor{ink}{HTML}{F5F7FA}
+\else
+ \definecolor{ink}{HTML}{181E24}
+\fi
+\definecolor{highlight}{HTML}{FDB827}
+\setmainfont{TeX Gyre Adventor}
+
+\begin{document}
+\begin{tikzpicture}[line cap=round,line join=round]
+ % Lidar ring and returns
+ % The 10-degree arc gaps replace the old 1.5pt white marker strokes.
+ \foreach \angle in {0,45,...,315} {
+ \draw[ink,line width=5pt]
+ ({\angle+10}:2.05) arc[start angle={\angle+10},end angle={\angle+35},radius=2.05];
+ \fill[highlight] (\angle:2.05) circle[radius=.2186];
+ }
+
+ % IMU chip and pins
+ \foreach \angle in {45,135,225,315} {
+ \draw[ink,line width=8pt] (\angle:.67) -- (\angle:.94);
+ }
+ \fill[ink,rounded corners=6pt]
+ (-.74,-.70) rectangle (.74,.70);
+
+ % Coordinate frame
+ \draw[highlight,line width=4pt] (-.15,-.15) -- (-.15,.39);
+ \fill[highlight] (-.15,.57) -- (-.29,.36) -- (-.01,.36) -- cycle;
+ \draw[highlight,line width=4pt] (-.15,-.15) -- (.39,-.15);
+ \fill[highlight] (.57,-.15) -- (.36,-.01) -- (.36,-.29) -- cycle;
+ \fill[ink] (-.15,-.15) circle[radius=.20];
+ \draw[highlight,line width=4pt] (-.15,-.15) circle[radius=.17];
+ \fill[highlight] (-.15,-.15) circle[radius=.052];
+
+ % Wordmark
+ \node[anchor=west,inner sep=0,text=ink,font=\fontsize{116}{116}\selectfont]
+ at (3.25,-.02) {evalio};
+\end{tikzpicture}
+\end{document}
diff --git a/docs/css/tweaks.css b/docs/css/tweaks.css
index cc5d58a8..b9725738 100644
--- a/docs/css/tweaks.css
+++ b/docs/css/tweaks.css
@@ -1,3 +1,29 @@
+.evalio-logo {
+ max-width: 42rem;
+ margin-inline: auto;
+ text-align: center;
+}
+
+.evalio-logo img {
+ margin-inline: auto;
+}
+
+.evalio-logo + p {
+ text-align: center;
+}
+
+.evalio-logo__dark {
+ display: none;
+}
+
+[data-md-color-scheme="slate"] .evalio-logo__light {
+ display: none;
+}
+
+[data-md-color-scheme="slate"] .evalio-logo__dark {
+ display: block;
+}
+
@media screen and (min-width: 76.25em) {
/* remove top level header */
@@ -10,4 +36,4 @@
.md-nav__item--section>.md-nav__link[for] {
color: var(--md-default-fg-color--lighter) !important;
}
-}
\ No newline at end of file
+}
diff --git a/docs/index.md b/docs/index.md
index a3a9f8cc..881fa8dc 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -1,4 +1,9 @@
-# evalio
+
evalio
+
+
+
+
+
evalio is a tool for **Eval**uating **L**idar-**I**nertial **O**dometry.
@@ -12,4 +17,4 @@ Specifically, it provides a common interface for using LIO datasets and LIO pipe
- Run pipelines via the CLI interface and yaml config files
- Compute statistics for resulting trajectory runs
-Checkout [quickstart](quickstart.md) for a quick overview of the package. Additionally, evalio eases a number of common tasks, check out the examples for some common use cases.
\ No newline at end of file
+Checkout [quickstart](quickstart.md) for a quick overview of the package. Additionally, evalio eases a number of common tasks, check out the examples for some common use cases.
diff --git a/justfile b/justfile
index 429e7774..5eb902be 100644
--- a/justfile
+++ b/justfile
@@ -6,6 +6,14 @@ pybuild:
stubs:
cp -r .venv/lib/python3.12/site-packages/evalio/_cpp python/evalio
+logo:
+ mkdir -p docs/assets
+ lualatex -interaction=nonstopmode -halt-on-error -output-directory=docs/assets docs/assets/logo.tex
+ lualatex -interaction=nonstopmode -halt-on-error -jobname=logo-dark -output-directory=docs/assets '\def\darklogo{1}\input{docs/assets/logo.tex}'
+ dvisvgm --pdf --font-format=woff2 --output=docs/assets/logo.svg docs/assets/logo.pdf
+ dvisvgm --pdf --font-format=woff2 --output=docs/assets/logo-dark.svg docs/assets/logo-dark.pdf
+ rm docs/assets/logo.aux docs/assets/logo.log docs/assets/logo-dark.aux docs/assets/logo-dark.log
+
bump-minor:
uv run bump-my-version bump minor
git push --tags