Text to Mind Map Generator
Convert any text into a structured, interactive mind map using AI. Paste notes, articles, or ideas and generate multi-level visual mind maps instantly.
About
Unstructured text - lecture notes, meeting transcripts, research papers - contains implicit hierarchical relationships that human readers must mentally reconstruct. This tool automates that reconstruction. It sends your raw text to a large language model (Groq Cloud, Llama 3-70B) which identifies the central topic, major themes, subtopics, and supporting details, then returns a structured tree. The tree is rendered as an interactive mind map on an HTML Canvas with pan, zoom, drag, collapse, and export capabilities. Without the API key, a client-side heuristic parser segments text by paragraph boundaries, sentence length, and keyword frequency to approximate a hierarchy. Approximation quality degrades for texts lacking clear structural cues (e.g., stream-of-consciousness prose). The layout algorithm distributes nodes radially from the root, computing bounding boxes via measureText and applying minimum angular separation of 15° between siblings to prevent overlap.
Practical failure mode: feeding the tool text shorter than 50 words yields shallow, uninformative maps. Conversely, inputs exceeding 8000 tokens may be truncated by the LLM context window. For best results, supply 200 - 3000 words of structured or semi-structured content. The tool persists your last input and generated map to localStorage, so refreshing the page does not lose work. Pro tip: if your source material has numbered lists or headings, the AI produces significantly better hierarchies.
Formulas
The radial tree layout positions each child node at an angle computed from its index among siblings. For a parent at position (px, py) with n children, the i-th child is placed at:
where r is the radial distance (proportional to depth level, typically 250px × depth), θstart is the starting angle allocated to this subtree, and θspan is the angular sweep assigned based on the subtree's total descendant count relative to its siblings. The sweep allocation follows:
where count(node) returns 1 + the sum of descendant counts for all children. Bézier edge control points are computed at the midpoint between parent and child with a perpendicular offset of 0.2 × the distance, producing gentle curves. Node bounding box width is capped at 200px; text lines are wrapped when measureText(line).width > maxWidth − 2 ⋅ padding.
Reference Data
| Feature | Specification | Notes |
|---|---|---|
| AI Model | Llama 3-70B (Groq Cloud) | Temperature 0.3, max 8192 tokens |
| Fallback Parser | Client-side heuristic | Paragraph & keyword-based segmentation |
| Max Input Length | 8000 tokens (~6000 words) | Truncated beyond context window |
| Min Recommended Input | 50 words | Below this, maps are too shallow |
| Max Tree Depth | 5 levels | Deeper nesting degrades readability |
| Max Nodes | 200 | Layout performance constraint |
| Node Bullet Points | 1 - 5 per node | Key details from source text |
| Export Format | PNG (2× resolution) | High-DPI canvas export |
| Persistence | localStorage | Auto-save input & map state |
| Pan & Zoom | Mouse drag, scroll wheel, pinch | Touch-enabled for mobile |
| Node Interaction | Click collapse, drag reposition, double-click edit | All nodes interactive |
| Layout Algorithm | Recursive radial tree | Angular separation ≥ 15° |
| Edge Rendering | Quadratic Bézier curves | Smooth curved connections |
| Keyboard Shortcuts | Ctrl+Enter, Ctrl+S, R, +/- | Generate, Export, Reset, Zoom |
| Accessibility | WCAG 2.1 AA | aria-live, focus management, contrast ≥ 4.5:1 |
| API Key Security | In-memory only | Never persisted to storage |
| Color Coding | Depth-based hue rotation | Root blue, children shift through palette |
| Text Wrapping | Canvas measureText | Max 200px node width |
| Mobile Support | Touch pan, pinch zoom | Responsive textarea & controls |
| Print Support | @media print | Canvas exported, controls hidden |