Skip to content

User-generated content

View as Markdown

Sudomimus user-generated content currently centers on account avatars: users can keep a generated avatar, upload their own image, and decide which applications may receive a static or animated avatar claim.

The system separates three concerns:

  • Account media is controlled by the user in the With portal.
  • Processing and moderation normalize uploaded media into safe public WebP projections.
  • Application delivery uses claim policy, user consent, and sector-scoped opaque URLs.

Each account has one current account avatar. It can come from:

SourceMeaning
GENERATEDA Sudomimus-generated account avatar. This is the default and can be reset at any time.
UPLOADA user-uploaded image accepted by the upload pipeline.

The account avatar is not automatically shared with every application. Applications receive it only when their claim policy requests STATIC_AVATAR or ANIMATED_AVATAR and the user’s grant allows the real avatar. Otherwise, applications may receive a sector placeholder avatar or no avatar field, depending on policy.

Uploaded originals are private upload candidates. After the user completes an upload intent, Sudomimus validates the uploaded object, creates a new avatar asset, and enqueues asynchronous normalization. Public avatar delivery uses normalized WebP files, not the original upload.

The normalized output is square, 512x512, and has a static projection. Animated inputs can also produce an animated WebP projection. If an avatar has no animation, animated delivery falls back to the static URL.