Precipigraytion, still 1

scene.background = Gray(1)
scene.aspect_ratio = "1:1"
scene.viewport = (2160 mm, 2160 mm)
scene.main_resolution = (2160, 2160)
# scene.main_canvas_engine = Scene.DISPLAYP3_U8_SKIAWASM

for i in range(150_000):
    f1 = random.fraction()
    f2 = random.fraction()
    Circle(
        opacity=0.05,
        color=Gray(0.5 ± 0.35),
        translation=random.point_of(scene.viewport),
        radius=(
            10 mm + f2 * (
                100 mm if f1 < 0.9 else 600 mm)))

Note: Normally, you wouldn't specify the main_canvas_engine and main_resolution properties. But they make a difference for works like this, with the compositing of 150,000 items at 5% opacity.