The Mandelbrot Period-Bulb Calculator is my attempt to implement what the Mandelbrot Hyperbolic Period Finder does by adding a graphical interface and extending its capabilities. With the previous app, you could already input the coordinates of a minibrot generated elsewhere and have it calculate the hyperbolic period. Now, you can explore the Mandelbrot set directly and click a button to trigger the same analysis. Despite its graphical interface, its focus is not on visual exploration or artistic rendering, but more on numerical experimentation.

The Mandelbrot set is filled with “bulbs” —that never-ending chain of circular heads attached along the figure’s edges— where the orbit of under converges to an attracting periodic cycle. This app detect that behavior for a chosen parameter and report the period (cycle length) when found. Think of it as a “reality check” tool: if you’re clicking around the Mandelbrot set and wondering “am I in a period‑p bulb?”, this app attempts to answer within practical limits. Note that some boundary decorations visually resemble bulbs, but lack an attracting cycle. In those cases, no period can be detected.
How to use it
- Click the preview canvas (right side) to choose c . This automatically fills Re(c) and Im(c) under the Parameters & Settings box (left side). Note: depending on zoom level or precision, the clicked pixel may not corresponds exactly to the computed parameter. At deep zoom levels, the preview is approximate, so numeric input gives the most reliable results.
- Alternatively, you can directly type the coordinates into Re(c) and Im(c), if you already know them.
- Use the mouse wheel to zoom the preview.
- Click and drag to pan.
- After selecting a point, press the “Compute bulb period” button to run the detection.
- Optionally, use “Copy result” to copy the report text (handy for notes).
Special note: The technical details that follow are based on information provided by the AI assistant used to develop this application.
How it works
The app does a few simple things:
- Escape test: Iterate from . If the orbit escapes beyond the chosen escape radius, the point is reported as outside.
- Burn‑in (“settle”): If it doesn’t escape, iterate for a while to let transient behavior die out.
- Cycle detection: Keep a short history and check whether the current iterate comes approximately close to a previous one, suggesting a repeating loop of period p.
- Confirmation streak: Require the same period match multiple times in a row before declaring success.
Practical tuning tips
- If you get “Inside (uncertain)”, try increasing Settle, Test, or Max period.
- If nothing confirms, try a slightly looser ε (e.g., 1e‑8 instead of 1e‑9).
- If you see “near boundary” warnings, expect slower or shakier detection. That’s normal.
- Higher values increase reliability but may slow computation noticeably.
What “Period” means
- If the app detects a hyperbolic component, the reported period is the length of an attracting cycle: . In other words, after iterating long enough, the orbit settles into a repeating loop of distinct points.
- The tool also estimates the multiplier of that cycle (roughly: how strongly attracting it is). If || is close to 1, you’re probably near the boundary, and detection becomes harder.
Limitations
This app runs inside your browser, which means it’s constrained by performance, floating‑point precision, and the fact that points near the boundary can behave “almost periodic” for a long time.
- Boundary pain: Near the edge of bulbs, results may come back as “Inside (uncertain)”.
- Caps matter: Max period, iteration counts, and tolerance ε can prevent detection if set too low (or cause false positives if too loose).
- Not a full classifier: This tool focuses on detecting attracting cycles (hyperbolic components), not classifying every possible boundary phenomenon.
Privacy & credits: This tool runs entirely in your browser. It doesn’t need a server, and it doesn’t send your inputs anywhere. Built as a personal experiment, with help from OpenAI ChatGPT.