Skip to content
charmotion
Splash screen animation

A launch animation from your app icon, ready for your first screen.

Upload your app icon, logo or mascot. You get a launch intro of about 2.6 seconds that ends on your character at rest, then hands off to idle or loading while the app gets ready. It comes as a Rive LaunchStateMachine, transparent HEVC MOV and WebM, a 1080 × 1920 video and web, React and SwiftUI code.

Intro
About 2.6 s, ends on idle
Files
.riv, MOV, WebM, MP4, 9:16
Code
Web, React, SwiftUI
Plan
Starter, $20/month
Sizzle, a Charmotion demo character Live Rive file
Loops
Play once

This is the actual .riv our engine delivers, playing in your browser. It's the same state machine you drive from your app with one number input and a trigger per one-shot.

Where the intro plays: right after the native splash

1. Native splash stays still

iOS shows a static launch screen before your code runs, and Android 12's SplashScreen API only animates an AnimatedVectorDrawable icon. Keep both static, on the same background color and icon position as your first screen.

2. Your first screen plays the intro

LaunchStateMachine plays the intro once and settles on idle. It fires no end event, so time the hand-off to the intro length (about 2.6 s) or move on as soon as the app is ready.

3. Hand off to loading or home

Switch to CharacterViewModelMachine and set mood to 5 (loading) while data loads, or go straight to your home screen. The character never stops on an odd frame.

What to use on each platform

PlatformFileHow
iOS (SwiftUI, UIKit).riv or HEVC-alpha MOVDelivered SwiftUI view, or AVPlayer for the MOV
Android.rivrive-android on your first activity, after the system splash
Flutter.riv + READMErive package; remove flutter_native_splash when the intro starts
React Native, Expo.riv + README@rive-app/react-native in a development build
Web and PWA.riv or transparent WebM + MOVDelivered web and React code

Not included: Lottie files, an animated native OS splash (Android's needs an AnimatedVectorDrawable) and animated home-screen icons (not available to third-party apps on iOS or Android).

Real output

Delivered files, exactly as you'd download them.

MP4 Every set

1080 × 1080 at 60 fps. Here: Gummo’s wave, from a delivered set.

Transparent WebM & MOV Every set

Alpha channel included, so the checkerboard shows through. MOV is HEVC with alpha for Apple apps and editors.

Kiko thinking, GIF output

GIF Every set

Light previews for docs, email and chat. Kiko’s “thinking” loop.

9:16 launch video Every set

1080 × 1920 for stories and splash screens. Sizzle’s launch intro.

kiko.riv · 150 KB

CharacterStateMachine
number input mood
0–9: idle, happy, wave, thinking, sad, loading, listening, talking, sleeping, attention
triggers: success · error · yes · no · enter · exit
LaunchStateMachine
launch → idle, plays once

Rive state machine Every set

One small file instead of 17 videos. It’s what powers the demo at the top of this page.

import { useRive, useStateMachineInput } from "@rive-app/react-canvas";

export function Kiko({ mood = 0 }) {
  const { rive, RiveComponent } = useRive({
    src: "/kiko.riv",
    stateMachine: "CharacterStateMachine",
    autoplay: true,
  });
  const input = useStateMachineInput(rive, "CharacterStateMachine", "mood");
  if (input) input.value = mood; // 0 idle · 1 happy · 2 wave · 3 thinking · 4 sad · 5 loading …
  return <RiveComponent style={{ width: 320, height: 320 }} />;
}

Paste-ready code Every set

Web, React and SwiftUI components named after your character.

Formats included per plan
FormatSpecsStarter & All in one
MP41080 × 1080, 60 fps, all 17 animationsIncluded
9:16 launch video1080 × 1920 MP4Included
GIF480 px previews, solid backgroundIncluded
Rive (.riv)Vector; Data Binding view model + legacy inputs: mood for loops, triggers for one-shots, launch machineIncluded
Transparent WebMVP9 with alpha, 1080 × 1080Included
Transparent MOVHEVC with alphaIncluded
CodeWeb (HTML), React and SwiftUI componentsIncluded
Download all (.zip)Rive file, code, README and posters in one archiveIncluded
Video exportMP4, GIF, transparent WebM and MOV, 9:16: pick formats and animations on the set page, ready in about a minuteIncluded
AI assistants (MCP)Claude, Cursor, VS Code and CodexIncluded
Plans

Start free. Upgrade when you need more.

The .riv, transparent MOV and WebM and the code are in every paid plan, from Starter ($20/month). Every set also has the launch as MP4, GIF and a 9:16 video, fine for a store listing or a social post. Prices in USD; tax is calculated at checkout by Creem.

Free

$0forever

Try it with your own logo and character.

  • Logo animation ideas (3 concepts)
  • App-screen preview of your character
  • No card needed
  • 2 AI designs (logos or characters)
  • Works from Claude, Cursor, Codex
  • Email support

All in one

$100/month

For teams and several brands.

  • 15 logo animations a month
  • 10 character sets a month
  • Cinematic 3D video included
  • 40 AI designs a month
  • 3 refines per logo animation
  • Priority builds and support
FAQ

Before you start.

More in the full FAQ.

Can the iOS launch screen itself be animated?

No. Apple's launch screen is a static storyboard that iOS shows before your code runs. Play the intro on your first SwiftUI or UIKit view, drawn on the same background, so the switch from launch screen to animation is invisible.

Does the launch intro work with the Android 12 SplashScreen API?

Not inside it: the SplashScreen API only animates an AnimatedVectorDrawable icon, which we don't produce. Keep a static icon there, dismiss the system splash quickly, then play the Rive intro on your first screen on the same background.

Can I use the splash animation in Flutter, React Native or Expo?

Yes, with the .riv and its README; the delivered code snippets are web, React and SwiftUI only. In Flutter, keep flutter_native_splash still and remove it when the intro starts. In Expo, call SplashScreen.preventAutoHideAsync() and then hideAsync() once the Rive view is drawing; Rive needs a development build, not Expo Go.

How long should a splash screen animation be?

Short. Our launch intro runs about 2.6 seconds and ends on idle, and you can cut to loading or your home screen the moment the app is ready. If your app starts fast, consider playing it only on first launch rather than on every cold start.

Will a launch animation slow down app start?

Not if it runs alongside startup work instead of before it. Start network and database work while the intro plays and hand off as soon as both are done. The flat-art .riv is about 40 KB, but the Rive runtime adds to your app size, so check that figure if size is tight.

Is the splash animation delivered as Lottie or Rive?

Rive, plus transparent video. Rive suits an intro that hands off to an interactive mascot in the same file; detailed 3D icons also work as the HEVC MOV or WebM with no runtime. We don't deliver Lottie JSON. More in Lottie vs Rive for splash screens.

See it with your character first.

Free, in your browser. Your image stays on your device unless you ask for the short animated clip.

Free preview