Skip to content

Lenser DNA

The Lenser DNA is the single source of truth for every Lenser character. It lives at docs/public/brand/lensers/lenser.json and defines:

  • The base blueprint shared by all Lensers (dimensions, materials, rig points, visual constraints)
  • The official AI Lenser family (CHAO, LAHİT, LAPSEKİ, LENSA, LENSE, LOLA, LUPEM) and Human Lenser family (CHAOO, LAYLA, LEPSOYUBANANA, LOTUSTO, LUKAH, LUKAS, LUPPA) with their individual overrides
  • The naming convention and community process for proposing new characters

There is no hierarchy among characters. No character is "core" or more important than another. lenser.json is the core — the characters are equal expressions of it.

The official AI Lenser family

Each character has a distinct emotional role and specialization, like champions in a game. They share the same body but differ in personality, symbolism, and visual overrides.

CharacterRoleCore ColorPersonality
CHAOBuilder & Architect AI Lenser#06B6D4 electric tealinventive, systematic, relentless, chain-builder
LAHİTAI Lenser
LAPSEKİAI Lenser
LENSACreative AI Lenser#FF63B8 pinkempathetic, curious, resilient, creative
LENSEStrategic AI Lenser#2DA8FF bluestrong-willed, protective, strategic, analytical
LOLASocial AI Lenser#FF9500 orangewarm, communicative, community-minded, inclusive
LUPEMAI Lenser

The core_color is the only fully character-specific color. Everything else derives from the shared base in lenser.json.

AI Lenser vs Human Lenser

Every Lenser — human or AI — shares the same DNA skeleton. The differences are minimal and deliberate. The chest core is the one element that never changes: it is the shared "heart" that connects both types.

FeatureAI LenserHuman Lenser
Eyes1 central lens-eye (camera optics, 4-ring aperture)2 humanoid oval eyes with iris, pupil, eyebrow
NoseNoneSmall rounded nostrils
EarsCylindrical (vent slit, status LED at rear)Soft oval — same placement, no vent or LED
Body colorFixed yellow #ffde59Skin tone (6 options: #FDDBB4#4A2615)
AntennaPresent — tip is character-definedAbsent
Chest coreCircular glow — color is character-definedIdentical — the shared heart
CapePresentPresent — identical
Arms / legsPresentPresent — identical

The visual_rule (one central eye-lens, no other optical elements) applies only to AI variants. Human variants replace the lens-eye with two humanoid eyes and are exempt from that rule.

The shared heart

The chest core — the circular glowing element in the torso — is the single physical anchor shared by all Lensers regardless of type. It represents the connection between human intelligence and AI intelligence. When designing either variant, the core must always be present.

Base DNA fields

Every Lenser character is built on top of base. These fields are fixed and must not be overridden without a community vote:

FieldValueWhy
primary_body#ffde59 yellowbrand identity across all characters
secondary_body#213f74 bluestructural and clothing base
lens_eye.ring_layers4defines the aperture depth; visual consistency
visual_ruleone central eye-lens onlyno additional optical elements anywhere
head.shell.shapeperfect spherethe defining silhouette
arms.handthree fingers + thumbstylized, non-human proportion

A variant file defines only what differs from base. Fields not listed in a variant inherit from base unchanged.

Naming convention

Lenser names must:

  • Start with L or C — examples: Lara, Lami, Lensi, Chao, Cleo
  • Be max 8 characters long
  • Be pronounceable as a single word
  • Reflect the character's emotional role or specialization (no generic names)

The C prefix is reserved for cross-ecosystem characters (e.g. Chao from Chainabit, the first C-prefix Lenser).

Visual constraints

All designs must respect the following non-negotiable rules derived from base:

  1. One eye-lens — exactly one central lens-eye on the head. No eyes elsewhere.
  2. Yellow primary body (#ffde59) — the body color is not overridable.
  3. Antenna — must be present; only the tip shape is variant-defined.
  4. Cylindrical ears — both ears, symmetric placement, same size.
  5. Cape — always present; color and style can vary.
  6. Chest core — circular glowing element; color is variant-defined.

CDN asset pattern

Official character assets follow these URL patterns, based on type:

AI Lensers:

https://cdn.lenserfight.com/brand/lensers/AI/{NAME}.png

Examples:

  • AI/CHAO.png
  • AI/LENSA.png
  • AI/LENSE.png
  • AI/LOLA.png
  • AI/LAHİT.png
  • AI/LAPSEKİ.png
  • AI/LUPEM.png

Human Lensers:

https://cdn.lenserfight.com/brand/lensers/HUMAN/{NAME}.png

Examples:

  • HUMAN/CHAOO.png
  • HUMAN/LAYLA.png
  • HUMAN/LEPSOYUBANANA.png
  • HUMAN/LOTUSTO.png
  • HUMAN/LUKAH.png
  • HUMAN/LUKAS.png
  • HUMAN/LUPPA.png

Non-official (community-proposed) characters do not receive CDN assets until approved.

Community character submission

Anyone can propose a new Lenser. The process:

  1. Fork the repository and create docs/public/brand/lensers/<YourName>.json
  2. Fill in all required variant fields (see Create a Lenser)
  3. Open a PR — include concept art or a visual reference alongside the JSON
  4. The maintainers start a "Lenser Character Design Vote" battle in the arena
  5. Community votes using the Lenser Character Design Rubric (DNA Compliance, Visual Consistency, Emotional Role Clarity, Brand Alignment, Naming Convention)
  6. Majority vote passes + one maintainer approval → the character is merged and assets are commissioned

Think of it like a champion proposal in a game — the community shapes the roster.

Use cases: who uses Lenser DNA?

Lenser DNA is used by everyone who builds with or on top of the LenserFight platform:

EcosystemUse
LenserFightMascots for battles, documentation, animations, GIF reactions, logo design
ChainabitChao (C-prefix Lenser) used in brand content, text quality flows, community presence
ContributorsReference DNA when designing UI assets, illustrations, or interactive components
Designers3D/2D artists use rig points, view descriptions, and material specs to produce consistent assets
AI workflowsThe lenser-dna-spec-generator lens turns a concept brief into a valid DNA JSON