Ninety

Art supporting the future of sound.

A generative art collection by Reza Milani.

ProjectA generative collection of 20,000 portraits, minted on Base at 0.003 ETH.

StyleQuarter-Turn Portraiture: a face that exists only in the angle of its tiles.

The one ruleEvery square may turn about its own centre, by 90°. Nothing else moves.

ArtistReza Milani
X @RezaMilani ↗
Instagram @rezamilani.official ↗

Mint0.003 ETH20,000 portraitsBase · ABXOpens in … →

Campaign · Lantern Radio support packages

Ninety for Lantern

Mint a Portrait. Get Your Portrait. Help Build Lantern Radio.

The ruleEvery Ninety NFT you mint comes with one free Live Portrait — a portrait of your own face, made on the You page.

The formulaFree Portraits = NFTs Minted

It adds upPackages are not one-time purchases. Mint 3 now and 7 later, and you have 10 in total: 10 free Live Portraits and the Friend level.

  1. Module 06
    Level 01

    Supporter

    PFPs
    1
    Price
    0.003 ETH
    Live
    1 free Live Portrait
    • 1 NFT from the Ninety collection
    • 1 free Live Portrait
    • Your portrait shown in the Lantern Radio supporters’ gallery
  2. Paper / Green
    Level 02

    Friend

    PFPs
    10
    Price
    0.03 ETH
    Live
    10 free Live Portraits
    • 10 NFTs from the Ninety collection
    • 10 free Live Portraits
    • Shown in the supporters’ section
    • Title: Lantern Radio Supporter
  3. Cobalt
    Level 03

    Silver Patron

    PFPs
    30
    Price
    0.09 ETH
    Live
    30 free Live Portraits
    • 30 NFTs
    • 30 free Live Portraits
    • Title: Silver Patron
    • Featured in the supporters’ gallery
  4. Signal Yellow
    Level 04

    Gold Patron

    PFPs
    60
    Price
    0.18 ETH
    Live
    60 free Live Portraits
    • 60 NFTs
    • 60 free Live Portraits
    • Title: Gold Patron
    • A special place in the supporters’ gallery
    • Priority reservation of the physical Lantern Radio
  5. Red
    Level 05

    Founding Patron

    PFPs
    100
    Price
    0.30 ETH
    Live
    100 free Live Portraits
    • 100 NFTs
    • 100 free Live Portraits
    • Title: Founding Patron
    • A dedicated place on the Lantern Radio website
    • A special digital certificate
    • Top priority reservation of the physical edition

Prices are 0.003 ETH per Ninety NFT on Base, gas not included. Free Live Portrait credits count every NFT you have minted, across all your purchases, and will be tracked on Base by the LanternPatronage contract when the campaign opens. Titles, gallery places, the certificate and physical-radio reservation priority are perks of patronage. This is patronage of an art and radio project: you collect artworks and receive portraits. It is not an investment, not a share in Lantern Radio and carries no financial return. The mint on this page is one portrait per transaction; levels add up as you mint.

Campaign · Prize draw · No purchase necessary

Lantern Golden Ticket

Mint three portraits. Receive one ticket. No tickets are sold.

The ruleEvery three Ninety portraits a wallet mints earns one Golden Ticket. The count is cumulative: six portraits, two tickets.

The prizeThree Lantern Radio devices, each valued at 0.3 ETH. Three winners, from three different wallets.

The drawOnly after the Ninety collection has sold out. Random, and anyone can check it against a published Base blockhash.

Lantern Radio · Free prize draw

Golden Ticket

Prize
3 × Lantern Radio
Value
0.3 ETH each
Winners
Three different wallets
When
After Ninety sellout
—Your tickets
—Tickets issued
—Portraits minted (all)
Progress to the next ticket0 / 3

Connect a wallet to see your tickets. Counts are read-only.

Admit one

GT ————No sale · Sign or mint

Wallet Not connected Network Base From minting — Free entry —

Free ticket · No purchase necessary

Any wallet may mint exactly one free Golden Ticket. There is no ticket price — you pay only the network gas, and no ETH is sent to the contract. Minting a Ninety portrait is not required to enter.

Tickets from minting

Every three Ninety portraits your wallet mints earns one ticket, cumulative. Claim them here. Tickets are soulbound: they cannot be transferred or sold.

Earned — Claimable — Already claimed —

The ticket contract address will be set at deploy. Until it is live on Base, counts from minting are not yet on chain and these buttons stay still.

How the draw will work

The method will be published in full before the draw, so anyone can recompute the three winners. The outline is:

  1. 01
    Before sellout, a future Base block number is announced and committed in public.
  2. 02
    The draw waits until all 20,000 Ninety portraits have been minted.
  3. 03
    The hash of that committed block becomes the seed. No one, the artist included, can change it after the commitment.
  4. 04
    From the public list of tickets, the seed selects three tickets belonging to three different wallets.
MintFixed price on Base

Ninety mints at one fixed price, 0.003 ETH, on Base. Portraits are revealed in 20 batches of 1,000. Each stays sealed until its batch is full, then the whole batch is revealed at once, so no one can pick a Grail while it is being minted.

Opens
00days
00hours
00minutes
00seconds
Price 0.003 ETHMinted 0 / 20,000Network Base

Each mint from this page is one portrait, 0.003 ETH. Support levels are cumulative: mint ten portraits, in one or several visits, and you have the Friend level and ten free Live Portraits.

0.003ETH per portrait
20,000portraits
10%creator royalty
20batch reveals of 1,000
  1. 01
    Connect. Connect a browser wallet. The page switches it to Base.
  2. 02
    Mint. Pay 0.003 ETH plus a small network fee. One portrait per mint; mint again for another chance at a rarer tier.
  3. 03
    Sealed. Each token gets its seed at mint, but the portrait also depends on the reveal value of its batch: the hash of a Base block produced after the batch’s 1,000th mint. Until then the token shows a sealed card, and no one, the artist included, can know which portraits are Grails.
  4. 04
    Reveal. When a batch is full, its reveal value is written to the contract once, and all 1,000 portraits are drawn: poster first, then every card turns back. Twenty batches, twenty reveals.
  5. 05
    Keep. The script lives on chain. The same hash draws the same portrait, on any machine, for as long as Base runs.

Built with

ABX

Art Blocks’ open protocol for production NFTs. The script, the seed and the sale all run through it.

Protocol · Art Blocks@artblocks_io ↗

Base

The network Ninety is minted on, where a 0.003 ETH mint costs little in fees.

Chain · EVM L2Mint

Open the live artwork ↗ Press S for a 4000 px PNG, G for a GIF, Space to pause.

Contract address will be published here at launch. Follow X @RezaMilani for the announcement.

The idea01

A portrait is drawn, then hidden. What you see first is a poster of square cards, each turned away. Turn every card back, a quarter at a time, and the face was there all along.

Ninety began with a grid poster: a field of quarter circles, half circles, rings, stripes and numerals, of the kind identity studios use to build whole systems from a few shapes. The question was whether those same cards could carry a likeness without ever changing shape, colour or place.

They can, if the face is decided first. Each portrait is drawn on its own grid, then the grid is cut wherever the face has detail, and every square receives the one card and the one angle that draws its piece. For the poster, each card is turned away. The portrait is the poster, read at the right angles.

The style02 · Quarter-Turn Portraiture

Five rules define the style. Any work that keeps them belongs to it.

  1. IThe image is decided first and never shown directly.
  2. IIThe plane is a grid of squares, cut finer only where the image needs it.
  3. IIIEvery square holds one card from a closed vocabulary of shapes.
  4. IVThe only permitted move is a turn of 90°, 180° or 270° about the card’s own centre.
  5. VThe work has two states, poster and portrait, and the motion between them is part of it.

LiveYou, in Ninety

Take a photo, or turn on your camera. Ninety turns your face into a portrait.

A portrait of you. Each capture is given a fixed random tier and rarity — the same six tiers as the collection, decided once and kept. The hidden face is yours; the cards, the grid and the quarter-turn are the same system as the 20,000.

Free with every mint. Holders receive one free Live Portrait for every Ninety they have minted, counted in total. Anyone can also make a Live Portrait by Open Commission, 0.001 ETH. Nothing leaves your device until you choose to save it.

Make your Live portrait →

The system03 · Eleven card families

Faces are drawn with the poster’s own modules. Around them, eleven families of cards fill the empty squares, and when they turn back, every arrow, needle and gradient points at the face.

20,000portraits
11card families
90°the only move
0cards that move
The genome04 · 300,000 parameters

Every portrait carries 300,000 aesthetic parameters: thirty fields of 100 × 100 values, drawn from its seed and laid over the sheet.

A previewEach card turns on its own clock, set by the motion fields
Its genome30 × 100 × 100 = 300,000 values

Not noise. Each field is a smooth surface with its own scale, stretch and roughness, and some lean on the hidden face: denser at its edge, calmer away from it. So 300,000 numbers read as one printed sheet and one motion, not as static.

What they touch. The parameters never move a card or change its shape: the one rule holds. They set how each card turns (when, how fast, how it settles) and how the sheet is printed (screen, hatching, paper, colour drift), cell by cell.

GroupFieldsValuesWhat they set
Print880,000Ink density, screen angle, screen frequency, dot gain, hatch angle, spacing, weight and presence
Paper440,000Fibre direction and length, speckle, wear
Colour660,000Hue drift, saturation, lightness, warmth, a second ink, fade
Motion880,000Turn delay, turn duration, easing, overshoot, wave phase, settle wobble, lay-in delay and duration
Structure440,000Face bias, edge emphasis, focus, grain scale
Total30300,000per portrait, all from its seed
Rarity05 · Six tiers you can see

Rarity in Ninety is visual, not hidden in metadata. Each tier unlocks things the tiers below never receive: a coloured ground, a field of one family, a finer grid, blueprint lines, night.

TierOddsGroundFieldGridChrome

How tiers are dealt. A portrait’s tier is decided by its mint seed and its batch’s reveal value together, with fixed odds: 60% Common, 25% Uncommon, 10% Rare, 4% Epic, 0.9% Legendary and 0.1% Grail, the rarest tier. Nothing is held back: every Grail is in the mint, and every mint has the same chance of one.

How rank is measured. Every piece has nine traits: tier, ground, field, grid, chrome, head, hair, eyes and mouth. Its score is the sum of −log(share) over those nine, where share is the fraction of portraits with the same value. Rank 1 is the highest score; ties go to the lower number.

Shares below are measured across the 20,000-piece preview of the collection. Fields are where the tiers differ most. Each “only” field fills every empty square with a single family; Dense cuts the empty squares into small cards of every family.

Beyond the Portrait06

Art supporting the future of sound.

Ninety is more than a generative art collection. It is also an opportunity to support the development of an entirely different creative experiment: Lantern Radio.

Created by artist and generative artist Reza Milani, Lantern Radio explores a simple but radical idea: a physical radio that creates its music live, entirely on its own.

No AI. No internet. No subscriptions. No recordings, samples or stored audio files.

Its music is generated in real time by code running directly on the device, guided by its internal clock. Every moment becomes a new musical composition.

With 13 original stations, Lantern Radio brings together generative music, minimalist industrial design and the experience of listening to something that can never happen in exactly the same way again.

Why Ninety supports Lantern Radio

Both projects explore the possibilities of systems created through code.

Ninety transforms a collection of simple geometric rules into thousands of unique portraits.

Lantern Radio transforms mathematical and musical systems into an endless stream of original compositions.

Different mediums, one shared philosophy: creating something meaningful through rules, algorithms and human imagination.

A portion of the proceeds from Ninety will support the ongoing research, engineering and development of Lantern Radio, including the creation of its first physical version.

From digital art to a physical instrument

The ambition is to bring Lantern Radio beyond the screen and into everyday life: a small, timeless object that creates a different musical experience every time it is switched on.

By collecting a Ninety portrait, you become part of this journey.

Ninety supports the art. The art supports the sound.

Two independent creative projects. One shared vision of what code can create.

Meet Lantern Radio07

Lantern Radio

The first radio made 100% from code, living on the blockchain.

The Lantern Radio device is minted as an on-chain object on Base. Every note is composed live by code, driven by the clock, so anyone tuned to the same station at the same moment hears the same piece.

  • 13 live stations. Each piece lasts 2–4 minutes.
  • No AI, no recordings, no samples. Every instrument is synthesized as it plays.
  • No internet is needed for the music. The schedule comes from the clock: the same station and the same hour always air the same piece.
  • Station styles are written in the spirit of named composers — Winter is cinematic (Zbigniew Preisner and other film composers); Spring is electronic (Jean-Michel Jarre, Vangelis and others); Lullaby draws on George Winston, Max Richter and others.
  • Behind the radio, a generative living artwork — Reza Milani’s Conversation with the Wind — reacts to the music.
  • Conversation with the Wind88.1
  • Night Pilgrim89.7
  • Supper Club91.3
  • Breath92.9
  • Reading Room94.5
  • Mist96.1
  • Poppy Field97.7
  • Winter99.3
  • Spring100.9
  • Lullaby102.5
  • Sleep104.1
  • Rain105.7
  • Pulse107.3
Independent creative project

Discover Lantern Radio →

The Development Journey08

Four steps, from a live engine to a physical instrument.

  1. 01
    Generative music engine

    13 live stations, running on lanternradio.xyz.

    Live
  2. 02
    Physical design and engineering
    Next
  3. 03
    First prototype and hardware testing
    Next
  4. 04
    New stations and features
    Next
Preview all 20,000 →

Turn on your camera and see yourself in Ninety ↗