HOME WORK ABOUT CONTACT
■ //AUDIO.VISUAL.TEXT ©2026
■001404.OPIA
■002//AUDIO.VISUAL.TEXT
BASED IN
Narrm, Australia
■003BRAND IDENTITY
00:08YRS EXPERIENCE
■004DIGITAL INTERFACES
00:06YRS EXPERIENCE
■005 EDITORIAL00:05YRS EXPERIENCE
■006SELECTED WORK
6 PROJECTS / 2020–2026
■007STUDIO NOIR
FORM MAGAZINE
ARCHIVAL APP
■008OPEN FOR COMMISSIONS
■009MINERAL CO.
VERSO TYPEFACE
PACKAGING / TYPE DESIGN
■010 ATELIER BLANCART DIRECTION
00:2023
■011 PENTAGRAM — LONDON — 2016–2018
■012 STUDIO FORSBERG — COPENHAGEN — 2018–2021
■013 INDEPENDENT PRACTICE — 2021–PRESENT
■014 INSTAGRAM
■015 LINKEDIN
■016 READ.CV

SELECTED WORK

DIR /PROJECTS — 6 ENTRIES — 2020–2026
■001
STUDIO NOIRBRAND IDENTITY — FULL SYSTEM
BRANDING2025FEATURED
■002
FORM MAGAZINEEDITORIAL DESIGN — PRINT
EDITORIAL2025——
■003
ARCHIVAL APPUI/UX — DIGITAL PRODUCT
DIGITAL2024FEATURED
■004
MINERAL CO.PACKAGING — PRODUCT RANGE
PACKAGING2024——
■005
VERSO TYPEFACETYPE DESIGN — VARIABLE FONT
TYPOGRAPHY2024——
■006
ATELIER BLANCART DIRECTION — CAMPAIGN
ART DIR.2023——
■001 STUDIO NOIR
■002 FORM MAGAZINE
■003 ARCHIVAL APP
■004 MINERAL CO.
■005 VERSO TYPEFACE
■006 ATELIER BLANC
■001 STUDIO NOIR
■003 ARCHIVAL APP
■005 VERSO
■002 FORM
■004 MINERAL
■006 ATELIER
■001 STUDIO NOIR
■002 FORM MAGAZINE
■003 ARCHIVAL APP
■004 MINERAL CO.
■005 VERSO TYPEFACE
■006 ATELIER BLANC
■001 STUDIO NOIR
■003 ARCHIVAL APP
■002 FORM
■005 VERSO
■006 ATELIER

ABOUT

//AUDIO.VISUAL.TEXT
// system.identity > execute (artist)
// version: 404.OPIA

// alias: Yani Zaharopoulos (he/him)
// base_location: Narrm / Wurundjeri Woi Wurrung Country
// status: in-process
// type: multidimensional.entity
// version: v1.3.7 (born AU)

acknowledgement.enabled = true;
acknowledge.traditional_custodians {
  region = "Narrm / Melbourne";
  custodians = "Wurundjeri Woi Wurrung people of the Kulin Nation";
  respect(Elders.past + Elders.present);
}

// Initialize identity
  name = "Yani Zaharopoulos";
  pronouns = "he/him";
  identity = "queer";
  heritage = "second-gen Greek-Australian";
  base = "Brunswick, Narrm";
  role = ["artist", "barber", "audio.engineer.in.training"];
  disciplines = ["audio", "visual", "ritual", "installation"];
  cultural_duality = true;
  environment = dual_layer("spiritual", "electronic_club");
  family.influence = {
    signal = "wog_remix.wav";
    scent = "frankincense.burning";
    icons = ["μάτι", "silver relics", "orthodox textile"];
  }

  memory.early = {
    scent.frankincense(),
    audio.play("greek_remix.wav"),
    atmosphere = ritual + rhythm;
    ancestral_pulse = active;
  }

  atmosphere = coded(memory.sequence);
  mood = devotional + fragmented;
}

// Artist routine
artist.routine.init {
  ritual = incense("greek");
  adornment = jewellery("silver.mati");
  state = focus + meditative.flow;
  process = intuitive + textured + nonlinear;
  inspiration.source = ["diaspora memory", "club residue", "emotional distortion"];
}

// Sonic journey
  input.genres = ["ambient", "experimental", "avant-garde"];
  texture.library.load("sub_genres");
  loop.ancestral → electronic;
  expression.form = {
    rhythm: encoded,
    emotion: decoded,
    structure: disrupted;
  }
  creative_mode = vulnerable + fluid;

// Sound philosophy
define.sound_philosophy {
  genre.bias = ["ambient", "experimental", "avant-garde"];
  tone = sensory ∴ vulnerable;
  glitch = embraced;
  sound = [
    structure.break(),
    emotion.surface(),
    history.loop()
  ];
  language = vibrational;
}

// Meaning of music
define.music_meaning() {
  force = "nonlinear";
  affect = {
    body: kinetic_response,
    mind: subconscious_trigger,
    soul: collective_mirror
  }
  if signal.received:
    return connect(human.body, shared.psychic.space);
  return memory.fragment + ancestral.rhythm + future.noise;
  music = archive(identity);
}

// Core beliefs
manifest.core_beliefs {
  music == sensory.language;
  music == ancestral.archive;
  music == memory.fragment;
  music == collective.feeling();
  music == presence.now();
}

// Archive summary
archive.summary {
  discipline = ["audio", "visual", "text"];
  process = iterative + intimate + experimental;
  access = ambient.resonance + system.error;
  output = [project.shattered_code(), project.signal_return()];
}

CONTACT

GET IN TOUCH — RESPONSE 48HRS
LET'S
TALK.
■001 EMAIL
[email protected]
■002
■003 RESPONSE WITHIN 48HRS
I TAKE ON A SMALL NUMBER OF PROJECTS EACH YEAR.
[email protected]EMAIL → LINKEDINCONNECT → INSTAGRAMFOLLOW → READ.CVRESUME →