Skip to content
Mnemoloop
Release note

Mnemoloop 2.1 adds image occlusion cards

Draw masks over a diagram, get prompted with a label, and click the region. Mnemoloop 2.1 adds image occlusion, scored without self-rating.

4 min readMarco Pozzecco

What changed

Mnemoloop 2.1.0 adds image occlusion, the fifth card type. A text card can ask what a structure is called. It cannot ask you to find it. Occlusion can: the diagram itself is the prompt.

Draw a rectangle over a region of an image, and review prompts you with that region's label. Click the region it belongs to. The card scores itself, so there is no rating step.

The same release rebuilds the settings tab on Obsidian's declarative settings API, and fixes the first "Create flashcard" failing in a vault whose flashcard directory does not exist yet.

One card, many masks

An occlusion card is one Markdown file with one FSRS state, holding an ordered list of masks: one diagram, scheduled as one memory. The image stays an Obsidian embed, so Obsidian renders it in reading view and rewrites the link when you move the asset. Mnemoloop never copies or edits the file.

Masks store their rectangle as fractions of the image, not pixels, so the same mask lands on the same region after you re-export the image at another size. The card also stores the image's natural width and height, which lets review reserve the aspect ratio before the image loads.

![[lungs.png]]

```occlusion
width: 1200
height: 900
masks:
  - id: m1
    rect: [0.18, 0.22, 0.16, 0.12]
    answer: Left upper lobe
    hint: upper left of the image
    opaque: true
  - id: m2
    rect: [0.55, 0.24, 0.15, 0.11]
    answer: Right upper lobe
    opaque: false
```

Two ways to cover a region

Opaque masks hide what they cover, which is what a text label needs. Transparent masks tint a region while the image beneath stays visible, which is what a structure needs.

MODEUSE IT FORWHAT REVEAL DOES
OpaqueText labelsLifts the cover, so the label underneath reads directly
TransparentImage sectionsAdds a label naming the section

One diagram usually needs both, so the mode is per mask, not per card.

Review by clicking the region

Review prompts with one mask's label and waits for you to click that region. Correctness compares the label text, not the mask identity, so a diagram with the same label on two regions stays winnable.

The card is auto-scored: it reports Correct only when every prompted region was found, and Incorrect when any region was missed. Unrevealed regions stay hidden until their turn, and an answer never leaks through a hover tooltip or an accessible name. Hints are disclosed on request, and a "Reveal all" control sits beside the hint disclosure. Regions revealed that way count as incorrect, so the card cannot report success on prompts you skipped.

Large diagrams expand and zoom. At the end the card recaps every prompt and its outcome.

One memory, one schedule

Every mask on a card shares one FSRS schedule. That is a design choice.

Confusing one part of the heart for another is not a forgotten label. It means the organ as a whole is not understood. Occlusion tests the diagram the same way: the memory is the diagram, and a prompt is a probe of it. The card is scheduled as one memory, so when it comes due, every region is prompted again, in the context of the whole.

The consequence is worth stating plainly: a region you know cold still returns when its siblings are due. Per-mask scheduling would treat the regions as separate memories. They are one, so it is not part of this model.

Authoring in the card form

The card form gains an Occlusion tab. Pick an image from the vault, then drag on the surface to draw a mask.

  • Drag a mask to move it, or hold Ctrl and drag from anywhere on it, including a handle, to move it without resizing.
  • Resize from the eight handles on the mask you last touched.
  • Delete or Backspace removes the selected mask, unless the cursor is in a text field.
  • Set each mask's label (the answer field in the file), an optional hint, and its opaque or transparent mode.

Each mask is numbered on the image and in its editor row, so a region and its fields stay linked.

The rest of 2.1

The settings tab is now built with Obsidian's declarative settings API. Every control reads and writes through the same store as before, and you gain native controls, a native folder picker for the flashcard directory, settings search, and a live FSRS interval preview. Saving a setting now waits for the write to finish before the UI updates.

Mnemoloop also creates the configured flashcard directory before writing the first card, so a fresh vault no longer fails the first "Create flashcard" with a generic error.

What you need to do

  1. Update Mnemoloop from the community plugin directory.
  2. Open Obsidian. Existing cards parse unchanged, and no migration runs.
  3. Open the card form and try the Occlusion tab.

REQUIRES OBSIDIAN 1.13

2.1.0 sets the minimum app version to Obsidian 1.13. On an earlier Obsidian the plugin does not enable.

Occlusion cards are plain Markdown, so you can read and edit them by hand. An older Mnemoloop version now leaves an unrecognized card type alone instead of rewriting it as a basic card.

Mnemoloop 2.1.0 is in the community plugin directory now. The full list of changes is in the changelog.

Mnemoloop is free and open source.

Runs inside Obsidian on desktop and mobile. No account, no telemetry.

Install for Obsidian