Related: [Is there a simple algorithm for calculating the maximum inscribed circle into a convex polygon?](https://stackoverflow.com/questions/3953623/is-there-an-simple-algorithm-for-calculating-maximum-inscribed-circle-into-a-conv)

I'm writing a graphics program whose goals are artistic rather than mathematical. It composes a picture step by step, using geometric primitives such as line segments or arcs of small angle. As it goes, it looks for open areas to fill in with more detail; as the available open areas get smaller, the detail gets finer, so it's loosely fractal.

At a given step, in order to decide what to do next, we want to find out: where is the largest circular area that's still free of existing geometric primitives?

Some constraints of the problem
===============================

* It does not need to be exact. A close-enough answer is fine.
* Imprecision should err on the conservative side: an almost-maximal circle is acceptable, but a circle that's not quite empty isn't acceptable.
* CPU efficiency is a priority, because it will be called often.
* The program will run in a browser, so memory efficiency is a priority too.
* I'll have to set a limit on level of detail, constrained presumably by memory space.
* We can keep track of the primitives already drawn in any way desired, e.g. a spatial index. Exactness of these is not required; e.g. storing bounding boxes instead of arcs would be OK. However the more precision we have, the better, because it will allow the program to draw to a higher level of detail. But, given that the number of primitives can increase exponentially with the level of detail, we'd like storage of past detail *not* to increase linearly with the number of primitives.

To summarize the order of priorities
====================================

1. Memory efficiency
2. CPU efficiency
3. Precision

P.S.
====

I framed this question in terms of circles, but if it's easier to find the largest clear golden rectangle (or golden ellipse), that would work too.

P.P.S.
======

This image gives some idea of what I'm trying to achieve. Here is the start of a tendril-drawing program, in which decisions about where to sprout a tendril, and how big, are made *without* regard to remaining open space. But now we want to know, where is there room to draw a tendril next, and how big? And where after that?

![tendrils drawn within a circle](https://i.stack.imgur.com/RXuKk.png)