Piere MangiliStudio.

Selected work

Built, or being built.

We pick a small number of projects each year and go deep. Below: what we're currently shipping under the studio's own roof.

Project · 01

ANIMUS.

Multi-agent AI dream interpretation, with ancestral memories minted as soulbound NFTs on Polygon and zero-knowledge encrypted storage on IPFS + Supabase.

Live · Polygon mainnet · iOS / Android
Role
Solo founder · Architecture, contracts, AI orchestration, mobile app
Platform
React Native · Expo SDK 54 · Web (Vite)
Chain
Polygon (137) · gasless via Account Abstraction
Models
DeepSeek (deepseek-chat) · 4 specialized agents

Context

Consumer AI dream apps tend to do two things wrong: they reduce dreams to a single LLM prompt — losing every interpretive nuance — and they treat user dreams as training data. Dream content is among the most personal data a user can produce. The architecture has to reflect that.

ANIMUS is the version that should exist: a multi-agent system that interprets dreams from four distinct lenses, with a triple-layer storage where the user holds the encryption keys and the only persistent identifier on a public network is a soulbound NFT they own.

Architecture

End-to-end system, designed and built solo.

The diagram below traces a single dream from input to ancestral memory. Four agents run in parallel against the same model, then a synthesis pass produces cross-agent insights. The result is split across three storage layers with different trust assumptions.

  1. 01 · USER

    Mobile app

    Expo · iOS / Android

  2. 02 · ORCHESTRATOR

    AgentOrchestrator

    Fan-out · TypeScript

  3. 03 · 4 Agents · Parallel

    • Mental

      cognitive

    • Physical

      somatic

    • Astral

      symbolic

    • Spiritual

      karmic

  4. EXTERNAL

    DeepSeek API

    deepseek-chat

  5. 04 · SYNTHESIS

    Cross-agent synthesis

    Ancestral memory · JSON

  6. 05 · Storage · Triple layer

    • Polygon

      Soulbound NFT

      fingerprint + IPFS hash

    • IPFS

      Pinata + ThirdWeb

      full memory payload (gzip)

    • Supabase

      Encrypted backup

      AES-256 · zero-knowledge

  7. Wallet

    ThirdWeb · Polygon · Account Abstraction (gasless)

    Auth + encryption key derivation

Simplified data flow — single dream submission → 4-agent analysis → triple-layer persistence

The 4 agents

Four lenses, one synthesis.

Each agent is a specialized prompt + post-processing pipeline calling the same LLM (DeepSeek) in parallel. The orchestrator collects four JSON analyses, generates cross-agent insights, and synthesizes a single ancestral memory. The pattern is general — any domain that benefits from multi-perspective analysis can be modeled this way.

  • 01 · Mental

    Cognitive patterns, emotional structure, recurring narratives.

  • 02 · Physical

    Bodily sensations, instincts, vital energy markers.

  • 03 · Astral

    Symbols, archetypes, oneiric synchronicities.

  • 04 · Spiritual

    Karmic themes, soul connections, evolution arcs.

Privacy & data flow

Encryption keys derived from the wallet. The studio cannot read user data.

  1. 01

    Client-side encryption

    Dreams and metadata are encrypted in the app with a key deterministically derived from the user's wallet (Keccak256-based). Plaintext never leaves the device.

  2. 02

    Encrypted backup

    Ciphertext + IV stored in Supabase as zero-knowledge backup. The database contains no readable user content. Lose the wallet, lose the data.

  3. 03

    Public memory layer

    A soulbound NFT (non-transferable) is minted on Polygon with the IPFS hash of the synthesized memory. The on-chain footprint is intentionally minimal: a fingerprint, not the dream itself.

  4. 04

    IPFS pinning

    Memory payloads are gzip-compressed and pinned via Pinata + ThirdWeb Storage, retrieved through a 4-gateway fallback (ipfs.io, dweb.link, gateway.ipfs.io, pinata.cloud).

Stack

Production-grade, built one piece at a time.

Mobile
React Native · Expo Router · Reanimated · NativeWind · TypeScript
Web
React 18 · Vite · TailwindCSS · Three.js + React Three Fiber
AI orchestration
Custom 4-agent orchestrator (TypeScript) · DeepSeek API · parallel calls + synthesis pass
Blockchain
Polygon mainnet · ThirdWeb SDK v5 · Ethers v6 · gasless via Account Abstraction
Smart contracts
AncestralMemory (ERC-721 soulbound, upgradeable proxy) · AnimusDNARegistry · Solidity
Storage
IPFS (Pinata + ThirdWeb) · Supabase (encrypted) · AsyncStorage / SecureStore
Cryptography
AES-256-CBC (CryptoJS) · wallet-derived keys · per-record IV
Auth
Wallet connection (ThirdWeb) · biometric unlock (expo-secure-store)

On-chain

Verifiable contracts.

Both contracts are deployed on Polygon mainnet and verifiable on Polygonscan. Public minting, soulbound transfers disabled at the contract level.

Engineering decisions

Things I had to figure out.

  1. 01

    Why parallel agents instead of a single chained prompt.

    Sequential prompting biases later agents toward earlier framings. Parallel execution preserves interpretive independence; the synthesis pass reintroduces context only at the end. Trade-off: 4× the API cost per analysis. Acceptable, given the latency budget (5–10s end-to-end).

  2. 02

    Why a soulbound NFT instead of a regular database row.

    Memories aren't transferable property. Soulbound (ERC-721 with transfers blocked at the contract level) gives users a verifiable, portable claim to their record without enabling resale or harvesting. The on-chain payload is a bare minimum (token ID + IPFS hash) — privacy lives in the encrypted layer above.

  3. 03

    Why three storage layers instead of one.

    Each layer answers a different question. IPFS: persistence + content addressing. Supabase encrypted: fast queries + zero-knowledge backup. Polygon: ownership + tamper-proof audit trail. None of them alone is sufficient; together they cover availability, performance, and self-sovereignty.

  4. 04

    Why client-side key derivation.

    If the studio held any encryption key, the privacy claim would be a marketing line. Deriving keys from the wallet at runtime is the only way to make the architecture honest — and to make wallet loss = data loss, by design.

Status & roadmap

Live on Polygon mainnet. iOS and Android builds via Expo EAS. Web companion built with Vite.

Open work: refining the soul-connection UI (collision detection is already in the contract), real solar API integration (currently mock data), public alpha sign-up flow.

Engaging

Want a deeper technical walkthrough — including the 4-agent prompts, the synthesis logic, or the contract trade-offs? Get in touch.

More projects

Two more case studies are being readied for publication.

We'd rather show one project well than five projects badly. Want a confidential walkthrough of additional client work in the meantime?