Skip to content

Expression Schema

An Emotile expression is a JSON object with the following structure:

Top-Level Fields

FieldRequiredDescription
versionyesMust be "0.1"
canvasyesFixed 32×32 in v0.1
faceyesShape, tilt, squash
eyesyesLeft and right eye definitions
mouthyesMouth shape and position
browsnoLeft and right eyebrow definitions
marksnoArray of decorative symbols
motionnoAnimation parameters
mutationnoMutation / variation parameters

Canvas

v0.1 uses a fixed 32×32 canvas. The canvas field is required for forward compatibility, but width and height must both be 32.

Face

FieldTypeDefaultValues
shapestring"none""none", "circle", "soft_square"
tiltnumber0-15 to 15
squashnumber0-0.3 to 0.3

Eyes

Each eye has:

FieldTypeDefaultRange / Values
shapestring"dot""dot", "line", "arc", "closed", "cross", "star", "hollow", "spiral"
xnumber0–31
ynumber0–31
sizenumber31–8
opennessnumber10–1
anglenumber-180 to 180 (optional)

Mouth

FieldTypeDefaultRange / Values
shapestring"flat""flat", "smile", "sad", "open", "wave", "broken", "tiny_o", "hidden"
xnumber160–31
ynumber220–31
widthnumber61–16
curvenumber0-1 to 1

Marks

FieldTypeDefaultRange / Values
typestring"sweat", "question", "exclamation", "heart", "sparkle", "smoke", "anger", "ellipsis"
xnumber0–31
ynumber0–31
intensitynumber0–1

Motion & Mutation

Both are optional objects with numeric fields in range 0–1:

  • Motion: blink, jitter, breath, shake, glitch
  • Mutation: asymmetry, randomness, glitch

Released under the MIT License.