Skip to content

Add the uw-line-diagrams skill: one house style for drawn figures - #746

Open
lmoresi wants to merge 2 commits into
developmentfrom
docs/line-diagram-conventions
Open

lmoresi wants to merge 2 commits into
developmentfrom
docs/line-diagram-conventions

Conversation

@lmoresi

@lmoresi lmoresi commented Sep 15, 2026

Copy link
Copy Markdown
Member

What

A repo-shipped skill, .claude/skills/uw-line-diagrams/, that fixes the look of every drawn figure (mesh schematics with boundary conditions, domain sketches, control volumes, flow schematics) across docstrings, notebooks, benchmark pages and articles.

  • SKILL.md — the working recipe: which tool, the ten rules, the checklist.
  • line-drawing-conventions.md — the conventions reference (ISO 128 line vocabulary, fluid-dynamics habits, journal production specs, TikZ/CeTZ style blocks, sources).
  • uwfig.py — matplotlib module: colour tokens, line roles (boundary / interface / streamline / hidden / control volume / axis / mesh), arrow classes (velocity / force / energy / dimension), rcParams, and helpers (figure, draw_mesh, boundary, inflow_profile, dimension, axes_glyph, label, save → PDF + SVG + PNG).
  • uwfig.typ — the same roles for Typst + CeTZ.
  • examples/benchmark_meshes.py — the DFG cylinder channel, Waters and King box and plain channel figures built with the module; one PNG committed.

cetz-figures and uw-visualisation gain a one-line pointer.

Why

Each session re-derived line weights and arrow styles per figure. The benchmark mesh figures for the stress-transport work settled a look (thin light mesh, heavy boundary, parabola-and-arrows inflow, short labels, no caption material on the figure); this makes it the default.

Check

examples/benchmark_meshes.py runs in a built pixi environment and regenerates the three figures (Helvetica / Arial resolved on macOS, DejaVu Sans fallback elsewhere).

🤖 Generated with Claude Code

https://claude.ai/code/session_018T2VHUGaZiQVJ95qQ4DiSL

Line weights, dash patterns, arrow classes, colours, fonts and output formats
for every drawn figure in the project (docstrings, notebooks, benchmark
ledgers, articles), so that a wall, a streamline or a velocity arrow looks
the same everywhere. The skill carries Louis's conventions reference
(line-drawing-conventions.md), a matplotlib style module (uwfig.py) with the
mesh, boundary, inflow-profile, dimension and label helpers distilled from
the stress-transport benchmark figures, a matching CeTZ style block
(uwfig.typ), and the three benchmark mesh figures as the worked example.
The cetz-figures and uw-visualisation skills now point at it.

Underworld development team with AI support from Claude Code

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018T2VHUGaZiQVJ95qQ4DiSL
Copilot AI lite review requested due to automatic review settings September 15, 2026 09:08

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

The parabolic profile helper now takes the edge endpoints and the inward
normal, so inlets and outlets on horizontal edges (the cross-slot arms) draw
the same way as the vertical ones; inflow_profile stays as the vertical-edge
shorthand.

Underworld development team with AI support from Claude Code

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018T2VHUGaZiQVJ95qQ4DiSL
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants