Aurora
Exceptional
Free in Modulify
You can clone, edit, and host in modulify.ai
More sections
Explore the collection
- New
MorphA full-viewport photographic hang you scroll through forever. A dozen oversized prints stand on ONE straight line running away from the camera — each stepping right, up and back from the one in front, so the near ones are enormous and spill past the bottom-left of the frame while the far ones lie almost flat against the top-right corner. The hang is RIGID: every print is the same rectangle at the same angle, and a single perspective divide supplies the whole effect — the near ones lean about thirty degrees and the far ones lie flat, none of it faked per card, and because parallel planes cannot intersect the depth order can never go wrong. Each print carries the stretcher the yaw turns toward the lens: a warm bone edge along the top and the right, the top face grazed and the right face near square-on, so it reads as real canvas depth rather than a border. THE PAGE LOADS AS A HANG BEING PUT UP — the wall arrives one print at a time, nearest the lens first, each coming up from below carrying too much angle so you see its stretcher wide before you see the picture, then opening onto the shared rake as it takes its place; it ends composed because every print that lands is already in its final spot. Wheel, vertical drag or arrow keys CYCLE the line infinitely: the front print sweeps off toward the lower-left and a new one enters at the back, and the hand-off happens where the print is already outside the frame, so the wrap has no seam. Hover one and it pushes toward the lens and lifts out of the room's dark while the WALL LABEL in the left column becomes its label — title, location, year, and a caption that says what is actually in the frame. Click it and THE LINE PARTS: the prints in front run on down the line and off the bottom-left, the ones behind run up and off the top-right, and the split ripples outward from the work so the two halves peel rather than shunt as blocks — opposite directions at once, which is the one thing scrolling the hang can never look like. The work itself holds still while the line opens around it, because the reveal is the others leaving rather than the work arriving; then it squares up to the lens last of all and settles on its mark a hair too close before easing back onto it, alone with its full index line — body and glass, exposure, series. It is a CAMERA move as much as a card move: the perspective origin pans and the FOV widens, and because the mark is recomputed from the live camera every frame the print stays locked in the frame while the room moves behind it — a dolly with the subject pinned, not a card sliding over a backdrop. Everything is one blended pose per print on one requestAnimationFrame loop, so the whole thing is reversible frame-for-frame and never a lightbox; the cursor is hit-tested against each print's projected quad, so the target is the leaning print you can see, at the angle you see it. Click SETTINGS and a real camera panel drops in — draggable sliders for camera position, dolly and FOV, the shared yaw, roll and size, the cascade's march and the cursor parallax — every one a real term in the projection, with a live code read-out and a Copy Values button. Theme-aware (a near-black room, or a warm white cube where depth washes toward the room rather than to black), responsive by one decision made in the engine rather than by breakpoints a stylesheet guesses at — a portrait frame stacks the opened print above its label — and it honours prefers-reduced-motion, pauses off-screen, and owns the wheel while it fills the frame. Ships with a demo hang of eleven landscape photographs and a photographer's own index — title, location, year, body and glass, exposure, series — and a caption for each that says what is actually in the frame. The whole portfolio lives in one data file, so swapping the show is replacing the images and the text. - New
AmourA studio's entire archive, assembled into one shape and then taken apart into a wall. The section opens on BLACK — nothing on the stage, no spinner, no placeholder, because the photographs are already decoded and waiting below the frame — and then forty neon-lit studio portraits RISE UP out of the dark and settle into a MOSAIC HEART. They land row by row from the top down, so the lobes arrive first and the point finishes the shape, and the cells shrink as they descend on a written row profile rather than a constant ratio: the top TWO rows share one size so the lobes read as a single band of hero frames, the next two step down together, and everything below drops away fast into a fine point — three registers instead of nine faint gradations. The silhouette is built the way a PIXEL heart is built, from two separated discs and a tapering skirt, because the textbook implicit curve's cleft is too shallow to survive being sampled on a lattice — at any row height a mosaic can use, the notch has closed and the top row comes out as one solid bar. Here the notch is a measured one row deep and two cells wide, and each row's cell count is pinned by an editorial parity table, so the cleft and the hole appear in the same place on every screen instead of by accident. The middle of the heart is MISSING: exactly one cell of the third row is never dealt — sized to the cell rather than to the heart, so the centre photograph is removed whole and its six neighbours are untouched — and the frames that straddle the box are clipped against it, so the hole keeps a true rectangular edge instead of a mosaic's staircase. Then the hole FILLS. Single squares fly out of the surrounding photographs and settle into a second, much smaller heart with the same outer silhouette as the big one — an authored 11x9 piece of pixel art, symmetric because every row of it was WRITTEN as a palindrome rather than sampled off a curve, which is the only way a nine-column heart comes out with two equal lobes and its point on the axis. Most tiles land as white paper and a scattered few carry the photograph they left, so the small heart is visibly made out of the big one; and the tiles never stop turning over — each runs its own seeded clock, fading a photograph up, holding it, fading it out and going back to paper, so roughly a third of the heart is carrying a picture at any instant and the set is never the same twice. Then the heart BURSTS. Every photograph travels outward from the centre — the middle letting go first and the point last — until the mosaic has spread across the whole section as a WALL of frames at every distance, cropped by all four edges so it reads as continuing past the window, while the pixel heart grows with it and settles dead centre at the one spot the wall was solved to keep clear. NON-OVERLAP IS STRUCTURAL, not a collision test: every frame is contained inside its own grid slot, inset by half a gutter, so two frames cannot touch because their slots do not — and the frames near the heart are nudged WITHIN their own slots rather than evicted, which is what keeps the hole the size of the heart instead of the size of four slots. Depth is ONE number per frame driving four cues at once — how big it is printed, how sharp it is, how much of the room's dark sits in front of it, and what paints over what — biased toward the back, because near things are rare in a real room and an even spread of sizes reads as inconsistency rather than as distance. The split headline that framed the heart leaves as the wall arrives: type laid over fifty photographs is not type any more. Move the pointer and the photographs AROUND it lean toward it — the nearest furthest, the rest of the wall dead still, and the one directly under the cursor barely at all, because the pull points at the cursor and a frame it has already arrived at has nowhere to go; what you see is the ring around the pointer leaning in, the gesture of gathering something toward your hand. It is budgeted against the GUTTER rather than the viewport — two frames either side of the cursor close on each other by twice it, so the wall's no-overlap guarantee survives the pointer — and it is switched off entirely while the heart is whole, because a mosaic is a composition and cells dragged out of it are just a broken picture. Hover any frame on the settled wall and it lifts; CLICK it and that exact photograph GROWS OUT OF THE WALL and flies to the middle as a DETAIL CARD — it is not a card that appears over a wall, it is the photograph you pointed at, travelling, squaring up out of its lean and rounding its corners on the way — while the rest of the wall dims behind it and the card's serif name, verified tick, tag chips, collection pill and side rail cross-fade in only once the frame has stopped, because type sliding and scaling across a screen for half a second is unreadable. The arrow keys walk the wall without ever replaying the flight, so the keyboard never fights the animation; Esc or a click anywhere off the card sends the frame home to its exact slot. There is NO BLUR FILTER anywhere in the section — a canvas filter pass per draw stalls the main thread outright — so softness is a 32-pixel bake of each photograph cross-faded against the sharp original, which is free, is a better match for how an out-of-focus frame actually resolves, and pays three times over: the rise, the wall's depth-of-field, and the pixel heart's tiles all read off the same bake. ONE canvas, ONE requestAnimationFrame clock at fixed substeps, and the entire sequence is a pure function of a single elapsed-seconds scalar — GSAP owns nothing — so it can be scrubbed, replayed, or handed to a scroll position later without rewriting a beat. Black in both themes, because the photographs are the only colour on the stage and a bone-coloured version of this would put forty saturated frames on a light ground and lose the one thing the composition is doing. The whole mosaic re-solves for the board it is actually on — a wide solve and a tall one chosen by ASPECT rather than by width, since a portrait tablet and a landscape phone are the same width and want opposite hearts — measuring what it laid down and shrinking to fit rather than trusting the clamp, DPR-capped, pausing off-screen and in hidden tabs, and honouring prefers-reduced-motion by opening on the finished wall. - New
DimensionA photographer's works index built as a VORTEX that resolves into an endless CHAIN. Eleven photographs curl out of a single point at the centre of the screen and spiral outward into an evenly-spaced ring — each chip riding an angular swirl that unwinds as its radius grows, so the circle opens like a vortex decelerating into place, never a fan. The ring settles under the words ‘Works ’26’, breathing on a slow liquid undulation and drifting on an eased auto-spin, its chips linked by a single hairline thread, and it WAITS — no auto-advance, just a ‘Scroll’ cue in the corner. On the first scroll the ring zooms open and clears itself, handing the frame to a vertical chain: one photograph held full-size at the centre, the previous peeking in from the top and the next from the bottom, each linked to its neighbour by a slim coloured thread that inks its colour on as you arrive. Every scroll advances one work and the chain glides to re-centre; the rail is clone-padded so it loops FOREVER in either direction with no edge and no seam. The focus photograph is alive — a slow Ken-Burns drift and zoom, and a lift when the cursor is over it. The index of titles pins to the top-right and ticks the current work; the caption skews in like liquid — number and name to the left, discipline and year to the right — each time a new work lands. Click the centred photograph and it OPENS THROUGH AN IRIS: a circle grows out of the exact point you clicked, the photo counter-zooms as it fills the frame, and the editorial credit rises in line by line — title, discipline, year, a caption and the counter; click close or press Escape and the iris contracts back to the point it came from. On a phone the cards turn PORTRAIT and fill the screen, the focus card and its caption centred as one unit with the next card peeking off the bottom edge, and a swipe carries you through. Two palettes, light and dark, each with an ambient centre glow so neither is ever flat; no serif anywhere; a single physics loop owns the ring and the living photo while GSAP owns only the scripted beats — the spiral bloom, the shatter, the glide and the iris. Honours prefers-reduced-motion. Every constant, easing and timing is specified so it reproduces pixel-for-pixel.
BurstA cinematic, theme-aware curved video wall — three rows of landscape media cards laid on a convex cylinder: the centre column is head-on and closest, and each column steps around the cylinder, swinging out, receding, and rotating to stay tangent, so the sides angle inward and foreshorten. Because the spacing and each card compress together around the curve, the black gap between cards stays even the whole way around (a true cylinder, not a linear cover-flow that skews the edges and unevens the gaps). After any scroll the wall SNAPS onto the nearest slot — a card head-on at the centre — and rests still, so it never settles mid-angle. On load the wall arrives from the distance — the whole stage scales up from small while the cards light up ONE BY ONE, centre-out, each de-blurring from a soft blur (no spin) — and a thin top bar (wordmark + nav) resolves as a late beat. Every card carries its own title (category kicker over name). Under the hood the three rows are infinite rings: scroll, drag (1:1 grab with release momentum), or arrow-key and the rows ALTERNATE direction — row one travels right, row two left, row three right — each on spring-friction momentum with a whisper of idle drift, wrapping seamlessly around the back. Cards in motion smear with a fine motion blur written only to the leaf image (never a 3D ancestor, which would flatten the wall). There is no hover state — the cards simply sit, scroll, and snap to place. Click any card and it opens to a large centred full-frame view with its title, while the wall dollies up and dissolves behind it; Esc, the close button, or the backdrop reverses the move and returns it to its exact slot. ONE requestAnimationFrame clock owns every card's transform, opacity, z-index and motion blur; GSAP owns only the intro and the open/close zoom, on separate layers so the physics and the reveal never fight. Ships as a reusable component that takes any array of media (image, poster frame, or video) with a title and kicker. Theme-aware light and dark, keyboard-operable, honours prefers-reduced-motion with a still assembled wall, pointer-driven, and responsive — the curved wall holds down to a 390-wide mobile portrait.