Project Record
Maps Optimisation (Planar Ellipses)
Preview prompt
Summarize the Ionitsa project record titled "Maps Optimisation (Planar Ellipses)" for a technical reader. Cover the problem or research question, implementation or method, evidence or results, and limitations. Separate facts stated on the page from your own assessment, note anything unclear or unverified, and avoid promotional language. Primary source: https://ionitsa.com/projects/maps-optimisation-ellipses.md Canonical page: https://ionitsa.com/projects/maps-optimisation-ellipses/
Spatial systems optimizer for overlapping entity nodes, using planar ellipse layout and topology constraints.
Executive Summary
Interactive project maps and entity atlases become unreadable when nodes overlap. Users place items by meaning or drag, but dense graphs pile shapes on top of each other. I built a planar layout optimizer that repels overlapping ellipses while keeping nodes near their semantic anchor positions, so the map stays recognizable after each update.
The optimizer runs as a lightweight solver step in the atlas dashboard—refreshing layout when relations or coordinates change without large disruptive jumps.
This demonstrates geometric optimization, spatial graph layout, and interactive visualization systems design.
Problem
Given a set of ellipses with initial positions and optional anchor points, we want a layout that minimizes overlap and keeps nodes readable. Constraints: keep the layout in a bounded plane and avoid large jumps so that the map remains recognizable after each update.
Goal
Keep nodes near their anchors while minimizing overlap in a constrained plane.
Objective
For each pair of ellipses, we penalize normalized distance below 1.
Repulsion resolves collisions, attraction maintains layout continuity. Total cost is overlap penalty plus anchor-distance penalty; we minimize via gradient descent or a small solver step.
Implementation
- Input: ellipse centers, radii (or axes), optional anchor (x,y).
- Cost: sum of pairwise overlap terms + anchor pull (e.g. squared distance to anchor).
- Optimizer: L-BFGS or similar; bounds on (x,y) to keep nodes inside the viewport.
- Used in the atlas dashboard to refresh layout when relations or coordinates change.
Trade-offs
Global minimum is not guaranteed; we often run from current positions so the result is a local improvement. For very dense graphs, overlap may remain; in that case we rely on zoom or clustering in the UI.