Rive Animator Required – Bring Nuno to Life for a Kids’ Learning App

via Freelancer ·

Budget / Salary₹1,500–12,500
TypeFreelance project
LocationRemote
Posted1 hour ago
We already have a static illustration of Nuno, the friendly guide who appears on every screen of our learning app for children aged 6–12 years.

Your job is to replace that still image with a single, lightweight Rive rig that feels genuinely alive — always curious, expressive and engaging, but **never uncanny**.

What I Need From You

1. One `.riv` file**, under **400 KB**, built in **Rive Web (Canvas)**.
2. A **single state machine** driven by a handful of **boolean/number inputs** that I will wire up from code.
3. Perfectly crisp rendering from **52 px avatars up to full-screen 480 px** on both **Web and Android**.
4. The rig must work consistently across both platforms using the same file and runtime.

Animation Focus

Nuno’s default emotional tone should be **curiosity**.

When he breathes, looks around, listens or reacts, the feeling should be: “I’m interested in what you’re doing.”**

It should NOT feel like manic excitement, excessive animation, or total calm.

We want a subtle, believable sense of life.

## Required States

The rig must include the following states:
1. **Rest** – static pose shown briefly at load
2. **Idle** – subtle breathing and natural eye darts
3. **Listening**
4. **Thinking**
5. **Talking**
6. **Celebrate**
7. **Encourage**
8. **Smile**

## Eyes Are the Priority

Nuno’s **eyes are the anchor of the character**.

They must remain expressive, blink naturally, and track targets smoothly without stutter or mechanical movement.

If you ever have to choose between adding another limb movement and improving believable eye motion, **choose the eyes**.

### Blinking

Blinking must be handled **entirely inside the Rive rig**.

* Do **not** expose blinking as an input.
* Do **not** tie blinking to audio.
* Blinking should run on a **randomised internal timer**.
* Natural spacing should be roughly **every 3–6 seconds**, with variation.
* An occasional **double blink** is welcome.

A blink that happens exactly on a loud syllable can look like a flinch, so blinking must be independent of audio.

### Eye Movement

Beyond blinking, subtle eye movement is where much of Nuno’s perceived life will come from.

Please focus on:

* Slight natural drift of gaze
* Smooth eye movement
* Natural-looking focus changes
* **Widening of the eyes during Celebrate**
* **Softening of the eyes during Encourage**
* Subtle variations that prevent the character from feeling frozen

**Important:** Nuno’s pupils must NOT track anything the child does.

We will not provide a cursor position or face-tracking input. A mascot whose eyes follow a child’s finger or face can feel unsettling for children in this age group.

### 52 px Readability — Mandatory

**Eyes and eyebrows must remain readable at 52 px.**

At this size, Nuno’s entire face is approximately the size of a fingernail.

Please test the animation at **52 px** before considering the eye/brow work finished.

## Technical Constraints — Non-Negotiable

These constraints are important because of where the animation will run.

### File Size

* **One `.riv` file**
* Maximum: **400 KB**
* **Under 250 KB is strongly preferred**

The current implementation uses four PNGs totalling approximately **1.1 MB**, so there is significant headroom to improve this.

### Vector / Raster

Use **vector artwork wherever possible**.

We render Nuno from **52 px to 480 px**, so a raster-based rig would require multiple resolutions and would quickly blow the file-size budget.

If any element absolutely needs to be raster:

* Flag it clearly.
* Keep it as small as possible.
* Explain why raster is necessary.

### Runtime / Platform

* **Rive Web runtime (Canvas)**
* Our Android app is a **web app inside a native shell**.
* Therefore, the **same `.riv` file and same runtime** will serve both Web and Android.
* Nothing should be platform-specific.

### Performance

Target performance:

* **60 FPS**
* On a **mid-range Android phone**
* With Nuno rendered at approximately **360 px**

Our minimum supported Android version is **Android 7**.

Please therefore keep:

* Bone counts modest
* Per-frame computation modest
* State-machine logic efficient
* Simultaneous animations limited

We strongly prefer **a few well-observed, believable movements** over many movements happening simultaneously.

## Background / Rendering Requirements

The background must be **transparent**.

Nuno will appear on several different coloured surfaces, including:

* White cards
* Pale purple backgrounds/washes
* A dark gradient stage

Therefore:

* **No baked-in background**
* **No drop shadow painted into the artwork**
* Nuno must remain readable on both light and dark surfaces.
* Please specifically test him against **white** and **deep purple-black** backgrounds.

If his outline or any important facial feature disappears against either background, it needs to be adjusted.

## Acceptance Criteria

We will run all of the following tests before accepting the work.

### 1. Resolution Test

Nuno must render cleanly at both:

* **52 px**
* **480 px**

There should be no visible artefacts, distortion, or mushiness.

### 2. Idle Test

Idle must run continuously for **three minutes** without:

* A visible loop seam
* An obvious repetition
* A movement that gradually becomes irritating or distracting

### 3. Rest Test

Rest must be **genuinely motionless**.

A screenshot taken at any two moments while Rest is active must be identical.

### 4. Talking / Mouth Test

When the state is **not Talking**, the mouth must **never move**, even while other state parameters are changing.

In other words, if the character is Listening, Thinking, Celebrate, Encourage, Smile, etc., the mouth should remain appropriately controlled and should not accidentally animate.

### 5. Performance Test

The rig must maintain **60 FPS on a mid-range Android phone** with Nuno rendered at approximately **360 px**.

### 6. File / Background Test

The final file must:

* Stay within the agreed file-size budget
* Work correctly on both light and dark backgrounds
* Maintain transparent background rendering
* Work on both Web and Android

### 7. The Most Important Test — The Child Test

We will have a child watch Nuno while he talks and reacts.

The question is simple:

> **Does Nuno feel naturally alive, or does he feel strange?**

This is the real test.

Everything above is **necessary**.

Only this is **sufficient**.

## What I’m Looking For

I’m specifically looking for someone who understands **character animation in Rive**, not just someone who can make objects move.

You should be comfortable with:

* Rive Web / Canvas
* State machines
* Boolean and number inputs
* Efficient vector rigs
* Character rigging
* Eye and facial animation
* Natural blinking
* Subtle idle animation
* Performance optimisation
* Designing for very small display sizes

Experience animating **mascots, children's products, educational apps or character-based UI** would be a strong advantage.

Please share relevant **Rive examples**, particularly character/mascot work, when applying.

If this sounds straightforward, let’s give **Nuno the curious spark he’s been missing.**
android game design animation 3d modelling 3d animation game development 2d animation 2d game art adobe animate character animation
Apply on Freelancer →

Project sourced from Freelancer.com. Applications happen directly on the original platform — we never collect your data.