Janus Mosaics · Free Dual-Sided Images

Try the
Reveal.

This is the hook. Click the arrow to walk around the same 100 physical cubes: a perfect Space Invader on the front becomes a complete exact pattern on the back.

One perfect image.
One freely composed exact reverse.
10 × 10 CUBES30 × 30 FACELETS PER SIDE100 VERIFIED STATES0 + 0 TARGET EDITS
Choose the reverse artwork, then flip the wall
Front of the Janus Mosaic: a white Space Invader on a green 10 by 10 cube wall
FRONT · SPACE INVADER

Showing front: Space Invader

0front target edits
0back target edits
100/100legal cube states
0 / 1,800physical deviations

The mosaic pixels are caption-free. The button swaps between two different embedded images, and the raw 30×30 sticker grids remain embedded for independent verification.

Distinct front/back assets loaded · interaction self-test passed
01

What just happened?

You saw two real faces of one physical object. Classic ambiguous images offer a useful comparison—but Janus Mosaics move the second image out of perception and onto the opposite stickers.

Rubin vase illusion showing either a white vase or two black profiles

Rubin vase ↔ faces

One unchanging image supports two figure-ground readings.

The 1892 duck-rabbit engraving, readable as either a duck or a rabbit

Duck ↔ rabbit

The same lines become two different animals when interpretation flips.

Janus is different: the second work is not hidden in the same drawing. It is physically present on the opposite stickers of the same cubes.
02

Only two of a cube’s six faces are the artwork

Unfold one Rubik’s Cube into a net and the constraint becomes visible: Janus specifies the 3×3 front and the opposite 3×3 back. The other four faces are not asked to form pictures.

Rubik’s Cube net with front and back highlighted as the two exact artwork targets The front and back faces each contain nine designed stickers. The top, left, right, and bottom faces have no target image and become legal solver output. NO TARGET TOPsolver output NO TARGET LEFTsolver output EXACT TARGET FRONT9 designed stickers NO TARGET RIGHTsolver output FOLDS OPPOSITE FRONT EXACT TARGET BACK9 designed stickers NO TARGET BOTTOMsolver output Repeat this cube 100 times → one 30×30 front mosaic + one 30×30 reverse
This is one physical cube unfolded. The net is illustrative; each finished cube receives a specific legal 54-sticker state.
18artwork stickers9 front + 9 back
36supporting stickerstop + left + right + bottom
Before solving

The four side faces are not yet known. No target image has been assigned to them; their colors remain available, within Rubik’s Cube rules, to make the two chosen faces possible.

After solving

Every sticker is known and legal. The four side faces are solver output, not art-directed surfaces, so they may read as color noise rather than coherent pictures.

What is verified

The oracle checks the complete 54-facelet cube. The exhibit promises an exact front and an exact reverse on the same 100 cubes—not four additional side mosaics.

Unknown as artwork before the solve; legal but uncomposed afterward. Those four non-target faces provide much of the freedom that lets two opposite pictures coexist on one cube.

Now turn one complete legal cube state around

This is cube R04C07 from the verified Space Invader ↔ Diamond Rings wall. The front and back are the two designed 3×3 patches; the other four faces are the actual legal colors selected by the compiler.

LOADING OPEN-SOURCE 3D

What the six faces mean

The cube is complete and legal. “Unknown” applies only before the solver runs; afterward all 54 stickers are fixed, but only the 18 front-and-back stickers were art-directed.

Two designed surfaces18 target stickers
Front · Space Invaderexact target · WWG / WGW / WWW
Back · Diamond Ringsexact target · BBY / BBY / YYB
Four solver-determined surfaces36 support stickers
Topsolver output
Rightsolver output
Bottomsolver output
Leftsolver output
Machine-checkable state: the complete URFDLB facelet string is embedded below and marked independently verified. The renderer receives the same state remapped to UDFBLR.

3D renderer: AnimCubeJS 3.5b by Josef Jelinek and Michael Feather, MIT licensed, pinned to source commit c130aa68. A first-party interactive CSS cube remains available if the library is blocked or offline.

03

Now compare the two design strategies.

The reveal earned the explanation. Hold the Space Invader front constant and change only what we demand from the reverse side.

Strategy A · Two independent images

Space Invader ↔ Heart

The front survives unchanged. But a separately designed heart conflicts with 20 local cube pairings, so the heart blueprint must be edited before the wall becomes exactly buildable.

Front of the two-image challenge: a white Space Invader on green
FRONT · SPACE INVADER

Showing front: Space Invader

0front target edits
20heart target edits
100/100complete legal states
0 / 1,800physical deviations from final blueprint
Original heart target before exact-pair repairOriginal heart targetThe independently selected second image.
Final exact heart with the twenty changed target cells outlined in redFinal exact heartRed outlines mark the 20 blueprint changes.
Strategy B · The pattern unlock

Space Invader ↔ Exact Pattern

You have already tried this construction at the top. Lock every front pixel, then compose the reverse from exact legal partners instead of forcing a second predetermined icon.

Space Invader front beside its exact Diamond Rings back
0front target edits
0pattern target edits
100/100complete legal states
0 / 1,800physical deviations
04

Why the pattern unlocks the perfect front

The solver does not invent random camouflage. It chooses exact reverse-side brush strokes from the legal freedom left by each fixed front block.

100

Independent local decisions

Each physical cube contributes one 3×3 front brush and one 3×3 back brush. Once the front is locked, every location still has a list of exact legal back partners.

4,008

Exact opposite-ink pairings

Across the 70 two-color brush classes, 4,008 of 4,900 ordered front/back class pairs are exact under the most permissive opposite-ink relationship.

5

Perfect back languages

Checker, diagonal stripes, horizontal bands, vertical bands, and diamond rings all coexist with this exact Space Invader with zero target edits.

The pattern is not camouflage. It is the second artwork selected from the exact legal freedom behind the first.
05

The ghost lattice is still there

One sticker in every 3×3 face is a fixed center. The front and back centers are welded opposite colors, so the back inherits a mirrored 1-in-9 lattice from the front.

Every cube contributes one forced center pair. The exact constructions above keep every center pixel in the background field, so the lattice is present mechanically but invisible as damage.

The independent-heart challenge is therefore not paying a basic center tax. Its 20 edits come from genuine local front/back incompatibilities.

06

Verification ledger

“Exact” means complete 54-facelet cube states were constructed and independently validated—not merely that a browser thought the color counts looked possible.

ConstructionTarget editsFull statesPhysical resultStatus
Space Invader ↔ Heart0 front + 20 back100 / 1000 / 1,800 deviations from final blueprintEXACT AFTER BLUEPRINT NEGOTIATION
Space Invader ↔ Checker Field0 front + 0 back100 / 1000 / 1,800 deviationsEXACT FROM THE START
Space Invader ↔ Diagonal Stripes0 front + 0 back100 / 1000 / 1,800 deviationsEXACT FROM THE START
Space Invader ↔ Horizontal Bands0 front + 0 back100 / 1000 / 1,800 deviationsEXACT FROM THE START
Space Invader ↔ Vertical Bands0 front + 0 back100 / 1000 / 1,800 deviationsEXACT FROM THE START
Space Invader ↔ Diamond Rings0 front + 0 back100 / 1000 / 1,800 deviationsEXACT FROM THE START