Module

Effects

Effects and post

Effects cover reusable visual treatments: particles, blurs, grades, and other post-processing intent. They say what the treatment is for, not which plugin must run.

Use this module when A look depends on an effect that is not just paint on a single shape.

Keep in mind. If an effect is required for conformance, say so. An adapter that cannot produce it must report that, not silently drop it.

Raw schema:/schema/1.0/modules/effects.schema.json · https://visualspec.dev/schema/1.0/modules/effects.schema.json

How to read a definition.The paragraphs say what to write and why. “Exact constraints” opens the schema keywords (type, pattern, bounds) for people checking a validator. A sample at the bottom of each definition is the smallest JSON that shows the required shape. Values such as $ref inside a sample point at another definition. They are not fields you copy into a document.

effect

Write an object. Only the fields named below are allowed. Unknown fields are rejected so a typo cannot hide inside the document.

You must include id and type.

You may omit targetRefs, enabled, assetRef, duration, blend, particles, trail, postProcessing, shaderAssetRef, parameters, and extensions. Leave a field out when you have nothing to say. Do not invent a placeholder.

Exact constraints
type
object
additional properties
forbidden
idrequiredid

This is not a new shape. It reuses id from the common module. Open that definition for the fields you can write.

typerequiredtaxonomy

This is not a new shape. It reuses taxonomy from the common module. Open that definition for the fields you can write.

targetRefsarray<id>

Write a list. Each item follows the shape described under items.

Each item in the list must be different. Duplicates are invalid.

Exact constraints
type
array
unique items
true
itemsid

This is not a new shape. It reuses id from the common module. Open that definition for the fields you can write.

enabledboolean

Write true or false.

Exact constraints
type
boolean
assetRefid

This is not a new shape. It reuses id from the common module. Open that definition for the fields you can write.

durationduration

This is not a new shape. It reuses duration from the common module. Open that definition for the fields you can write.

blend"normal" | "add" | "multiply" | "screen"

Pick one of the 4 listed values. Any other value is invalid. The list is closed on purpose so tools agree on the same words.

Exact constraints
Allowed values
  • "normal"
  • "add"
  • "multiply"
  • "screen"
particlesobject

Write an object. Only the fields named below are allowed. Unknown fields are rejected so a typo cannot hide inside the document.

You may omit count, rate, lifetime, size, velocity, spread, color, and seed. Leave a field out when you have nothing to say. Do not invent a placeholder.

Exact constraints
type
object
additional properties
forbidden
countinteger

Write a whole number.

The number must be at least 0.

Exact constraints
type
integer
minimum
0
ratenumber

Write a number. Decimals are allowed.

The number must be at least 0.

Exact constraints
type
number
minimum
0
lifetimeduration

This is not a new shape. It reuses duration from the common module. Open that definition for the fields you can write.

sizesize

This is not a new shape. It reuses size from the common module. Open that definition for the fields you can write.

velocityvector3

This is not a new shape. It reuses vector3 from the common module. Open that definition for the fields you can write.

spreadnumber

Write a number. Decimals are allowed.

The number must be at least 0.

Exact constraints
type
number
minimum
0
colorcolor

This is not a new shape. It reuses color from the appearance module. Open that definition for the fields you can write.

seedinteger

Write a whole number.

The number must be at least 0.

Exact constraints
type
integer
minimum
0
trailobject

Write an object. Only the fields named below are allowed. Unknown fields are rejected so a typo cannot hide inside the document.

You may omit length, width, and color. Leave a field out when you have nothing to say. Do not invent a placeholder.

Exact constraints
type
object
additional properties
forbidden
lengthnumber

Write a number. Decimals are allowed.

The number must be at least 0.

Exact constraints
type
number
minimum
0
widthsize

This is not a new shape. It reuses size from the common module. Open that definition for the fields you can write.

colorcolor

This is not a new shape. It reuses color from the appearance module. Open that definition for the fields you can write.

postProcessingobject

Write an object. Only the fields named below are allowed. Unknown fields are rejected so a typo cannot hide inside the document.

You may omit exposure, contrast, saturation, temperature, tint, bloom, vignette, grain, chromaticAberration, lutAssetRef, and toneMapping. Leave a field out when you have nothing to say. Do not invent a placeholder.

Exact constraints
type
object
additional properties
forbidden
exposurenumber

Write a number. Decimals are allowed.

Exact constraints
type
number
contrastnumber

Write a number. Decimals are allowed.

The number must be at least 0.

Exact constraints
type
number
minimum
0
saturationnumber

Write a number. Decimals are allowed.

The number must be at least 0.

Exact constraints
type
number
minimum
0
temperaturenumber

Write a number. Decimals are allowed.

Exact constraints
type
number
tintnumber

Write a number. Decimals are allowed.

Exact constraints
type
number
bloomnumber

Write a number. Decimals are allowed.

The number must be at least 0.

Exact constraints
type
number
minimum
0
vignettenumber

Write a number. Decimals are allowed.

The number must sit between 0 and 1, including both ends.

Exact constraints
type
number
minimum
0
maximum
1
grainnumber

Write a number. Decimals are allowed.

The number must sit between 0 and 1, including both ends.

Exact constraints
type
number
minimum
0
maximum
1
chromaticAberrationnumber

Write a number. Decimals are allowed.

The number must sit between 0 and 1, including both ends.

Exact constraints
type
number
minimum
0
maximum
1
lutAssetRefid

This is not a new shape. It reuses id from the common module. Open that definition for the fields you can write.

toneMapping"none" | "linear" | "reinhard" | "aces" | "filmic"

Pick one of the 5 listed values. Any other value is invalid. The list is closed on purpose so tools agree on the same words.

Exact constraints
Allowed values
  • "none"
  • "linear"
  • "reinhard"
  • "aces"
  • "filmic"
shaderAssetRefid

This is not a new shape. It reuses id from the common module. Open that definition for the fields you can write.

parametersobject
Exact constraints
type
object
additional properties
string | number | boolean | vector2 | vector3 | color
additionalPropertiesstring | number | boolean | vector2 | vector3 | color

More than one shape is accepted. Use exactly one of the 6 alternatives below. They are different ways to say the same kind of value.

anyOf 1string

Write a text value.

An empty string is not allowed.

Exact constraints
type
string
min length
1
anyOf 2number

Write a number. Decimals are allowed.

Exact constraints
type
number
anyOf 3boolean

Write true or false.

Exact constraints
type
boolean
anyOf 4vector2

This is not a new shape. It reuses vector2 from the common module. Open that definition for the fields you can write.

anyOf 5vector3

This is not a new shape. It reuses vector3 from the common module. Open that definition for the fields you can write.

anyOf 6color

This is not a new shape. It reuses color from the appearance module. Open that definition for the fields you can write.

extensionsextensions

This is not a new shape. It reuses extensions from the common module. Open that definition for the fields you can write.

Smallest example

Required fields only, with placeholder values. Replace them with the real intent.

effectJSON
{  "id": {    "$ref": "common#id"  },  "type": {    "$ref": "common#taxonomy"  }}