User Rating 0.0 โ˜…โ˜…โ˜…โ˜…โ˜…
Total Usage 0 times
Is this tool helpful?

Your feedback helps us improve.

โ˜… โ˜… โ˜… โ˜… โ˜…

About

Binary circle art encodes information as concentric rings of 0 and 1 characters placed at polar coordinates. Each ring of radius r holds n characters spaced at angular intervals of 2ฯ€n radians. Misconfigured density produces illegible overlap. Poorly chosen contrast ratios render output unusable in print or on screens. This tool computes exact placement geometry, enforces minimum spacing constraints, and previews results in real time before export.

You can supply raw binary, random sequences, or convert arbitrary text to its UTF-8 binary representation. The tool maps each bit to a ring position, producing art that is both visually structured and data-faithful. Exported SVG files preserve vector sharpness at any scale. PNG export rasterizes at the canvas resolution you configure. Note: character legibility degrades when ring density exceeds approximately 200 characters at font sizes below 6px.

binary art circle generator binary circle generative art binary pattern circular text data visualization

Formulas

Each character on ring k is placed using polar-to-Cartesian conversion. The radius of ring k is computed as:

rk = r0 + k โ‹… s

where r0 is the starting radius and s is ring spacing. The angular position of character i on ring k with nk characters is:

ฮธi = 2ฯ€ โ‹… ink + ฯ‰k โ‹… t

where ฯ‰k is the angular velocity for animation and t is elapsed time. Cartesian coordinates for rendering:

x = cx + rk โ‹… cos(ฮธi)
y = cy + rk โ‹… sin(ฮธi)

where (cx, cy) is the canvas center. When auto-density is enabled, characters per ring are calculated to maintain minimum arc spacing dmin:

nk = floor(2ฯ€ โ‹… rkdmin)

Text-to-binary conversion encodes each character as its UTF-8 code point in 8-bit binary representation: char โ†’ charCodeAt(0).toString(2).padStart(8, "0").

Reference Data

ParameterDefaultRangeEffect
Canvas Size600px200 - 2000pxOutput resolution and visual area
Number of Rings51 - 30Concentric layers of binary characters
Ring Spacing30px10 - 100pxRadial distance between adjacent rings
Characters per Ring406 - 300Density of digits on each ring
Font Size12px4 - 48pxCharacter legibility and visual weight
Rotation ModeRadialRadial / Tangential / NoneHow each character is oriented along the ring
Color: Zeros#6C8EBFAny hex colorFill color for 0 characters
Color: Ones#A3D9A5Any hex colorFill color for 1 characters
Background#FFFFFFAny hex / transparentCanvas background fill
Data SourceRandomRandom / Text / CustomHow binary string is generated
Animation Speed00 - 100Ring rotation speed (0 = static)
Starting Radius40px10 - 500pxRadius of innermost ring
Auto-DensityOnOn / OffAuto-calculate chars per ring based on circumference
Opacity1.00.1 - 1.0Global character opacity
Font FamilyMonospaceMonospace / Serif / SansTypeface for binary digits

Frequently Asked Questions

Auto-density computes characters per ring as floor(2ฯ€ ยท r_k / d_min), where d_min equals approximately 1.5ร— the font size. Inner rings with smaller radii receive fewer characters, maintaining legible spacing. Outer rings with larger circumferences receive proportionally more. This prevents the common problem of fixed character counts creating unreadable clusters near the center.
Each character is converted to its Unicode code point via charCodeAt(0), then rendered as an 8-bit binary string padded with leading zeros. For example, the letter "A" (code point 65) becomes "01000001". Characters with code points above 255 use 16-bit representation. The resulting binary string is distributed sequentially across rings from innermost to outermost.
SVG export reconstructs the artwork as vector text elements rather than rasterizing the canvas. Font rendering differences between the browser's Canvas API and the SVG text engine can cause slight spacing variations. The SVG uses the same polar coordinates and rotation transforms but relies on the viewing application's font metrics. For pixel-perfect fidelity, use PNG export.
Each ring k receives an angular velocity ฯ‰_k = baseSpeed ร— (1 + k ร— 0.15) ร— direction, where direction alternates between +1 and โˆ’1 for adjacent rings. This creates a counter-rotating visual effect. The animation loop uses requestAnimationFrame with a delta-time accumulator to ensure consistent speed regardless of frame rate. Setting speed to 0 produces a fully static image.
Canvas elements support up to roughly 16,384 ร— 16,384 pixels in most browsers, though memory constraints may lower this. At 2000px canvas size, a PNG export typically produces a 2-5 MB file depending on complexity. For print at 300 DPI, a 2000px canvas yields approximately 6.7 inches (17 cm) across. Use SVG export for resolution-independent output suitable for large-format printing.
When using Text mode, the binary string faithfully represents the input text in UTF-8 binary. However, this is a visual encoding without error correction or structured framing. It is not a substitute for QR codes or barcodes. The pattern is decorative and educational. Recovering the original text requires knowing the exact ring layout parameters and reading order.