All tools

Turn a year of dated activity into terrain, one ridge a week, then take it away as an image, a plot or a mesh.

week 38 · 11:00 · 5 events
View

Generated, not measured: a modelled developer's year.2,646 events · 828 of 1,248 hours · peaks top out at 8 an hour

38
11:00
What to draw

Runs in your browser. CSV contents and generated exports are never sent over the network. On the GitHub path, your browser sends the username and pasted token directly to api.github.com; the token is never written to storage.

How it works, and what it can't see

Counts per hour per week, compressed with a logarithm against the 98th percentile so one enormous hour cannot flatten the rest, then drawn two ways. The ridgeline is a ridge a week across the hours, smoothed twice along the day and once across neighbouring weeks, so each week keeps its own shape and agrees with the weeks beside it; a nearer week hides whatever stands behind it. The contours are smoothed twice across both and drawn at six levels, and the STL is cut from that same ground. Hours wrap at midnight; weeks do not. The crosshair reads the raw count, never the smoothed height.

The SVG is the view on screen. It contains strokes and no fills, reports its dimensions in millimetres, and groups paths by contour level, or by week for the ridgeline, whose hidden lines are removed before they are written. It contains no text or font dependency.

The binary STL is 102mm by 46mm, with 2mm of base and up to 12mm of relief. Its directed edges close exactly in the edge check: two triangles a cell on top, the same grid underneath, and a wall joining them.

Can't see

  • Private repositories, unless the token you paste can read them. With no token at all GitHub's limits are far too tight for a year of commits, which is the whole reason the field is there.
  • What time it was anywhere but where the author was sitting. The row is the hour off the commit's own local clock, offset and all, and that is deliberate: a laptop set to the wrong zone, or a fortnight abroad, moves the ground.
  • A year with fewer than 150 events, or fewer than 30 occupied cells. It refuses instead of drawing, because contours around a handful of cells are noise with rings on them.
  • Work. A commit is a commit: a rebase, a squash or a bulk import lands as a ridge at the hour it was replayed, not the hour it was written.
  • The zone a CSV was written in. A date with no offset is read as it is typed, so a spreadsheet exported in one country and read in another draws the same ground either way.
  • Whether a physical plotter, slicer or printer accepts an export. The page checks the SVG's units and strokes, and the STL's binary layout and closed directed edges, but no physical machine was part of that check.