Skip to content

Experiment · Geometry

Friedman Packing Center: exact, certified circle packings

This experiment addresses two pages of Erich Friedman’s Packing Center, which list, for each number n of circles, the packing with the largest known sum of radii, in a rectangle of perimeter 4 and in a circle of radius 1. Outcome: 16 of the 20 entries of the “rectangle” page for n from 31 to 50, and the n = 50 entry of the “circle” page, are credited to the experiment. Each packing is exact, comes with a certificate in rational arithmetic that anyone can recheck.

16 / 20entries out of 20 of the rectangle, n from 31 to 50Friedman’s pages read on 11 Oct 2026
n = 50entry of the circle: Σ r = 6.53881+previous value on the page: 6.53814+ (read on 1 Oct 2026)
21 / 21packings rechecked in exact arithmetic20 rectangles and 1 circle, check of 11 Oct 2026, no tolerance
92.2 to 92.7 %of the proven bound reached by the 16 rectangle entriesexact computation of 11 Oct 2026

1. The question

For a number n of circles, what is the largest sum of radii that can be reached by placing them, without overlap, in a fixed container? Radii are free. The two containers of the experiment are the disc of radius 1 and the rectangle of perimeter 4: the sides W and H satisfy W + H = 2, and the shape of the rectangle is free too. No formula gives the answer, apart from a few small cases.

2. Protocol and reference page

Erich Friedman keeps the pages of his Packing Center: for each n, a picture of the packing, the value of Σ r truncated to five decimals (the “+” sign marks a lower bound), the author’s name and the month. Each result is a packing whose coordinates are checked in exact rational arithmetic by a program of a few lines (section 5).

Problemn circles of free radii, without overlap, in a rectangle of perimeter 4 or in the disc of radius 1: maximum sum of radii
Page kept byErich Friedman, Packing Center: Circles in Rectangles and Circles in Circles
Result16 of the 20 entries of the rectangle for n from 31 to 50 (n = 32 to 40, 43 to 45, 47 to 50) and the n = 50 entry of the circle
Source…/cirRrec/ and …/cirRcir/, pages read on 11 October 2026; earlier state read on 1 October 2026. Entries dated “October 2026” on the page; four rectangle entries (n = 31, 41, 42, 46) are credited to another contributor.
The values on the pages are best known values, truncated to five decimals.

3. Results

When read on 1 October 2026, the “rectangle” page stopped at n = 30 and the “circle” page showed 6.53814+ for n = 50. When read on 11 October 2026, the “rectangle” page has 50 entries and the “circle” page shows 6.53881+ for n = 50. The table gives, for n from 31 to 50, the exact sum of radii of the submitted packing, the value shown on the page and the credit it carries.

n Exact Σ r Rectangle W × H Value on the page Credit on the page
31 2.892208387 1.008973 × 0.991027 2.89238+ Aaden Abraham
32 2.941468789 1.001535 × 0.998465 2.94146+ experiment
33 2.991187470 1.003366 × 0.996634 2.99118+ experiment
34 3.033970818 1.009637 × 0.990363 3.03397+ experiment
35 3.079136255 1.024689 × 0.975311 3.07913+ experiment
36 3.126819942 1.041793 × 0.958207 3.12681+ experiment
37 3.165932504 1.014578 × 0.985422 3.16593+ experiment
38 3.207236090 1.021354 × 0.978646 3.20723+ experiment
39 3.251064561 1.041296 × 0.958704 3.25106+ experiment
40 3.296908567 1.026103 × 0.973897 3.29690+ experiment
41 3.340443603 1.019898 × 0.980102 3.34065+ Aaden Abraham
42 3.382967862 1.011692 × 0.988308 3.38296+ Aaden Abraham (same value to five decimals)
43 3.425984042 1.003384 × 0.996616 3.42598+ experiment
44 3.466976278 1.000629 × 0.999371 3.46697+ experiment
45 3.507379502 1.002043 × 0.997957 3.50737+ experiment
46 3.543034929 1.011283 × 0.988717 3.54814+ Aaden Abraham
47 3.583612775 1.035807 × 0.964193 3.58361+ experiment
48 3.623211651 1.043396 × 0.956604 3.62321+ experiment
49 3.661583940 1.045855 × 0.954145 3.66158+ experiment
50 3.695318130 1.026179 × 0.973821 3.69531+ experiment

For the 16 entries credited to the experiment, the value shown on the page is the exact sum truncated to five decimals. For n = 50 in the circle, the submitted packing has exact sum 6.538814832; the page’s previous value was 6.53814+.

The packings, drawn from the exact coordinates: the centre and radius of every circle. Colour follows the radius, from violet (small) to cyan (large). The circles of the animated figure appear from left to right: this is a display sweep. The data behind each figure can be downloaded as JSON.

Circle, n = 50 · Σ r = 6.538814832 · JSON

The 20 rectangles for n = 31 to 50 are drawn at the same scale. The rectangle is free: its width W is a parameter of the packing, with W + H = 2.

n = 31 · Σ r = 2.892208
page value credited to Aaden Abraham · JSON
n = 32 · Σ r = 2.941469
experiment · JSON
n = 33 · Σ r = 2.991187
experiment · JSON
n = 34 · Σ r = 3.033971
experiment · JSON
n = 35 · Σ r = 3.079136
experiment · JSON
n = 36 · Σ r = 3.126820
experiment · JSON
n = 37 · Σ r = 3.165933
experiment · JSON
n = 38 · Σ r = 3.207236
experiment · JSON
n = 39 · Σ r = 3.251065
experiment · JSON
n = 40 · Σ r = 3.296909
experiment · JSON
n = 41 · Σ r = 3.340444
page value credited to Aaden Abraham · JSON
n = 42 · Σ r = 3.382968
page value credited to Aaden Abraham · JSON
n = 43 · Σ r = 3.425984
experiment · JSON
n = 44 · Σ r = 3.466976
experiment · JSON
n = 45 · Σ r = 3.507380
experiment · JSON
n = 46 · Σ r = 3.543035
page value credited to Aaden Abraham · JSON
n = 47 · Σ r = 3.583613
experiment · JSON
n = 48 · Σ r = 3.623212
experiment · JSON
n = 49 · Σ r = 3.661584
experiment · JSON
n = 50 · Σ r = 3.695318
experiment · JSON
00.010.020.030.043135404550n (number of circles)W − 1
Gap W − 1 of the submitted rectangle, for n from 31 to 50 (cyan: entries credited to the experiment; violet: the others). A square of side 1 corresponds to W = 1.
0123456711020304050n (number of circles)sum of radii
Sum of radii Σ r as a function of n from the values shown on the pages: rectangle in violet, circle in cyan.

4. Theorem and certificate

The certificate is the exact check of the n lines of a file. It uses neither square roots nor tolerance: the decimal values are read as rational numbers, and every comparison is made on those rationals.

Statement of validity

Proposition. Let (xi, yi, ri), i = 1…n, be rational numbers with ri > 0, and let the container C be either the rectangle [0, W] × [0, H] (W rational, 0 < W < 2, H = 2 − W) or the closed disc of radius 1 centred at the origin. If

  1. for the rectangle: ri ≤ xi ≤ W − ri and ri ≤ yi ≤ H − ri; for the disc: ri < 1 and xi² + yi² ≤ (1 − ri)²;
  2. for every i < j: (xi − xj)² + (yi − yj)² ≥ (ri + rj)²;

then (a) each closed disc Di with centre (xi, yi) and radius ri lies inside C; (b) the interiors of two distinct discs are disjoint; (c) the sum of the radii is exactly Σ ri, a rational number computed without rounding.

Proof

(a) Rectangle: if (X, Y) belongs to Di, then |X − xi| ≤ ri, so X ∈ [xi − ri, xi + ri] ⊂ [0, W]; likewise for Y. Disc: if P belongs to Di, then |P| ≤ |ci| + ri ≤ (1 − ri) + ri = 1, where |ci| ≤ 1 − ri comes from condition 1 by taking square roots, 1 − ri being positive.

(b) If a point P lay in the interior of both Di and Dj, the triangle inequality would give |ci − cj| < ri + rj, hence |ci − cj|² < (ri + rj)², contradicting condition 2.

(c) It is a finite sum of rationals.

What the certificate guarantees

  • that the n circles fit inside the container, with no excess, however small;
  • that no pair of circles overlaps: at most, two circles touch;
  • the exact value of the sum of radii of the submitted file;
  • that exactly n circles are present.

The statement is about the admissibility of the configuration and its sum. The ranking against the other values on the page is that of Friedman’s page.

A proven bound, and the ratio of each entry

An upper bound gives a fixed ruler, independent of the other entries on the page.

Proposition. For every packing of n pairwise disjoint circles: (i) in a rectangle of perimeter 4, Σ ri ≤ √(n/π); (ii) in the disc of radius 1, Σ ri ≤ √n.

Proof. (i) The discs are disjoint and contained in the rectangle, whose area WH is at most 1 since W + H = 2 (WH ≤ ((W + H)/2)² = 1). So Σ π ri² ≤ 1. By Cauchy–Schwarz on (r1, …, rn) and (1, …, 1), (Σ ri)² ≤ n · Σ ri² ≤ n/π. (ii) Same argument with the disc’s area π: Σ π ri² ≤ π, so (Σ ri)² ≤ n · Σ ri² ≤ n. ∎

This bound is elementary: it takes a few lines (area and Cauchy–Schwarz) and serves here as a yardstick.

The bound check (distinct from the validity certificate) verifies π·(Σ r)² ≤ n for the rectangle and (Σ r)² ≤ n for the disc, in exact rational arithmetic (π is bracketed by two rationals with 30 decimals, and its upper bound is the one used in the test). On 11 Oct 2026, it declares all 20 rectangle packings and the circle packing compliant. The 16 rectangle entries credited to the experiment reach 92.2 % (n = 32) to 92.7 % (n = 49) of the bound; for the circle n = 50, 92.5 %. This ratio does not change when a value on the page is beaten.

0.60.70.80.9111020304050n (number of circles)sum of radii / boundproven bound = 1
Ratio of Σ r to the proven bound, for n from 1 to 50, from the values shown on the pages (truncated to five decimals): rectangle in violet, circle in cyan. Cyan points: entries credited to the experiment. The gold line is the bound (1).

5. Recheck it yourself

Download the JSON file of one packing, then run this short Python program (standard library only). It reads the coordinates as exact rationals, tests conditions 1 and 2 for every pair (n(n − 1)/2 pairs, that is 1,225 for n = 50) and prints the outcome. For the circle, only the containment condition changes:

import json
from fractions import Fraction as F

d = json.load(open("friedman_rect_50.json"))
W = F(d["W"]); H = 2 - W                              # rectangle [0, W] x [0, H], périmètre 2(W + H) = 4
P = [tuple(F(v) for v in c) for c in d["circles"]]     # (x, y, r) en rationnels exacts
dedans = all(r > 0 and r <= x and x + r <= W and r <= y and y + r <= H for x, y, r in P)
disjoints = all((a[0]-b[0])**2 + (a[1]-b[1])**2 >= (a[2]+b[2])**2
                for i, a in enumerate(P) for b in P[i+1:])
print(len(P), dedans and disjoints, float(sum(r for _, _, r in P)))
d = json.load(open("friedman_cercle_50.json"))
P = [tuple(F(v) for v in c) for c in d["circles"]]
dedans = all(0 < r < 1 and x*x + y*y <= (1 - r)**2 for x, y, r in P)     # le disque est dans le disque unité
# (la condition de disjonction est la même que ci-dessus)

Expected output for the rectangle n = 50: 50 True 3.6953181299845124. The JSON files also hold the sha256 fingerprint of the submitted file.

6. The map of the challenge

The 50 entries of each of the two pages, in rows of 25 (n = 1 to 25, then 26 to 50). Cyan: credited to the experiment; gold: credited to another contributor for n from 31 to 50 on the “rectangle” page; pale violet: the other entries. Pages read on 11 October 2026.

1510152025rectanglecirclecredited to the experiment (17)other contributor (n = 31, 41, 42, 46)other entry

7. What this question models

This type of question models placement problems that arise in cutting and packaging (laying round parts of different sizes in a sheet or a box), placing sensors or antennas with circular coverage, and studying granular materials. Friedman's pages are a common reference for comparing packings; those shown here are exact, certified and rechecked by anyone.

My AI project in the service of my research

This challenge is not an end in itself: it is a test bench for my research on a certifiable embedded AI. My AI project, whose inner workings remain confidential, lets me reach 16 of the 20 rectangle entries and the circle entry, each rechecked in exact arithmetic. The certificate and the referee vouch for it: it is not my explanation you need to believe, it is the result, which can be checked again. This is the best known result at the date given, not a proven optimum.

All the results, with their sources and dates

→ See the Packing Center