An Ideas board that turns like a page

An Ideas board that turns like a page

Result. Bench now has an Ideas board: a page of sticky notes next to my projects, one click away. Getting to it smoothly took four tries. The version that works doesn't fly the canvas across to the notes at all: it…

TABLE OF CONTENTS

Result. Bench now has an Ideas board: a page of sticky notes next to my projects, one click away. Getting to it smoothly took four tries. The version that works doesn't fly the canvas across to the notes at all: it turns the page.

The Ideas board: sticky notes for the Raccoon Soaker, Robot Arm, Sand Pattern Maker, Clay Lathe, Icon Library and more

Why ideas needed a home

I needed somewhere to park ideas. The Raccoon Soaker (an ESP32-CAM project), a robot arm, a sand pattern table, a resistor cheat sheet: things I want to build, but not yet. I wanted them where I already work, on the same canvas as the projects, without cluttering it.

So the overview got one yellow sticky note to the right of the Projects and Experiments, with an arrow on it:

The overview: Projects and Experiments, with an "Ideas" sticky note and arrow to the right

Click it and the Ideas board comes in. On the board:

  • + New idea drops a note in the next free spot, ready to type.
  • Click a note to write on it, drag it anywhere, and the little dot cycles through five colours.
  • Drag a note onto the trash can to delete it. The can lights up red when a note is over it, so you know before you let go.

Dragging a note over the trash can: the can turns red

The notes live in one small file in the project (content/ideas.json), so they're backed up with everything else and the iPad and the Mac see the same board.

Getting there smoothly: four tries

I wanted the canvas to glide over to the ideas. It sounds easy. It wasn't.

Try What it did What happened
1. Zoom the canvas over Pan and zoom the whole canvas to an Ideas area off to the right Choppy: about a 300 ms freeze before it even started
2. Animate it directly Move the canvas with the browser's animation engine, and pause the current-flow animation meanwhile It started instantly, but still stuttered
3. Slide, then zoom Slide across at the overview's zoom, then zoom in on the board Better, still choppy at the zoom
4. Turn the page The canvas slides off to the left while the board slides in from the right; no zoom Smooth

Why the first three struggled: the canvas holds every project's artwork, hundreds of drawn parts and wires. Changing the view made the app redraw all of it before the animation could start (the freeze). Changing the zoom while moving made the browser redraw the picture at every in-between size. And the animated current flow was quietly redrawing everything every frame.

The page turn avoids all of it. The canvas is already drawn, so sliding it sideways costs almost nothing. The Ideas board is light, so drawing it is cheap. Nothing changes size.

The page turn at a quarter, half and three quarters of the way

The ← Projects button on the left of the board turns the page back.

A mistake on the way

While testing the board I added notes, dragged them, and deleted them, then tidied up by emptying the ideas file. I'd just added four real ideas of my own while trying it out, and the tidy-up wiped them. They came back from the test's own record, minus their colours. The rule now: copy a data file before any test and put that copy back after. Never just empty it.

What I learned

  • Move what's already drawn. Sliding a finished picture is nearly free. Redrawing it, or resizing it, every frame is what makes animation stutter.
  • A freeze before an animation is usually a redraw. Start the movement first and do the heavy update once it has arrived.
  • Look for hidden animation. The current-flow lines were redrawing the canvas every frame even when nobody was looking at them.
  • Ideas want a place, not a process. A page of sticky notes one click from the projects is all it took.

Comments (0)

Leave a comment

Loading comments