r/Rive_app

How can I use more than one artboard on my website?

How can I use more than one artboard on my website?

I have 3 artboards (project, about me, contact) with their respective state machines set to the default state.

When I export the .riv file and add it to my website, it only loads the first artboard from the file and ignores the other two. If I delete the first one, it loads the second but not the third.

One solution is to create 3 files, each with a single artboard, but I don't think that's the best solution.

Could anyone give me a hand?

My rive file.

https://preview.redd.it/1dfv8mzfxa2h1.png?width=1919&format=png&auto=webp&s=9e63719a6ab8f4f9e970a6004171eaa11c5767ac

https://preview.redd.it/1lmjyclixa2h1.png?width=1905&format=png&auto=webp&s=7e26f2dc5f032a691464df4f92ab1e47ee657255

And in the console.log, only one artboard shows up.

reddit.com
u/Chenko1997 — 2 days ago

After wasting a lot of time manually exporting Figma to Rive, I found this 1-click shortcut.

I used to spend so much time on this. Select frame in Figma, export, save to Downloads, drag into Rive... Super not efficient when you're moving more tons of assets every day.

So I wanted to share a cool and easy trick I found. You can just copy directly from Figma and paste straight into Rive. Works for both PNG and SVG. Layer hierarchy stays intact for vectors.

Made a short tutorial on my Rive Masterclass YouTube channel walking through it. I'm planning to share more Rive workflow tips like this one. The kind that save actual work hours. Feel free to follow along if it's useful.

u/Tom_Acco — 3 days ago

Built a logo sphere in Rive using only one script and 20 PNG assets. No state machines, no animations, no data binding.

This is the power of Rive Scripting.

No state machines. No animations. No data binding. No view models. Just one artboard, one script, and 20 PNG assets.

The whole thing runs on pure Luau:

  • A procedural grid that wraps infinitely
  • A radial scale falloff that fakes depth
  • Smooth mouse parallax
  • A placement algorithm that prevents identical logos from appearing next to each other horizontally, vertically, or diagonally

It's honestly wild how much you can do with Rive Scripting once you stop reaching for the visual tools and just write code.

u/flowmograph — 4 days ago

Listener Action Scripts in Rive — Detecting Double Clicks

Rive's listener action scripts let you run custom logic when a listener fires in a state machine. One practical use case: distinguishing a double click from a single click, which is tricky to do with standard listeners alone.

Here's how the double click detector works:

The script uses three properties in its type definition: a threshold number (default 0.3 seconds), a clicked trigger, and a doubleClicked trigger pulled from the view model, plus a lastClickTime number initialized to -1.

In init, it grabs the view model and resolves both triggers by name.

In performAction, it checks that the incoming action is a pointer event, then captures the current time. It compares lastClickTime against the threshold:

• If lastClickTime >= 0 and time elapsed ≤ threshold → fires doubleClicked, resets lastClickTime to -1
• Otherwise → fires clicked, sets lastClickTime to now

Because threshold is exposed as a script input, you can override it per-listener without touching the script itself. In the demo it's set to 0.3s by default, adjustable to 0.5s or whatever feels right for your use case.

To wire it up: select your listener target shape, add a listener, set the event to Click, choose the listener action script type, and pick your script. The threshold input appears inline. Then in the state machine, use the Any State node with clicked and doubleClicked trigger conditions to drive transitions to whichever animations you want.

The video shows this applied to a bubble animation — single click triggers a grow-and-shrink, double click triggers a pop.

u/Jeff_at_Rive — 4 days ago
▲ 1 r/Rive_app+1 crossposts

Can someone help me create a simple breathing animation

Hey I am not an animated or designer.

I am building a react native app and I want to add a character with a simple breathing animation.

I am generating the character using GPT.

I am breaking the image into pieces for better control.

I want to create it in such a way that the user can change the assets like helmet armour pants weapons.

How can I achieve something like this,

For the swapping of assets should I use solo ?

I want to add very simple animation just so that the user knows it's moving.

My animation is looking really bad.

This is my character

u/Positive_Sir7519 — 6 days ago

First Look: Stateful Components in Rive

Stateful Components are a new way to reuse components in Rive without wiring up a separate view model instance for each one.

Here's how they work: you build a component (say, a button) and attach a view model with whatever properties you want to expose — label text, background color, text color, etc. When you make it a component, you'll see a new Properties section in the inspector. Click + to choose which view model properties to expose, and mark each one as either input (you can set the value per instance) or output (the value can be read by a parent).

Once you nest that component somewhere else and flip it to stateful, those exposed properties show up directly in the inspector. Each instance can have its own values — no nested view model required. Copy the component 3 times, give each one a different label and color, done.

Nesting goes deeper too. A card component with its own view model can contain a stateful button, and you can bubble the button's properties up through the card's view model so the parent can override them as well.

Output properties work the other way: a slider component can expose its current value as an output, and a parent artboard can data bind to that value to read it in real time.

One more thing: input properties can be keyed on timelines. So you can animate a per-instance color override across a loop without touching the original component.

u/Jeff_at_Rive — 8 days ago

Didn't want to pay for Rive export, so I built a prompt-to-character generator

I was a Rive user but didn't want to pay for Rive just for export on a personal project and built an alternative. Not a Rive replacement for serious work, but might help for indie projects, AI agent avatars, and similar. Sharing here : https://github.com/sambuild04/prompt-to-animation

u/Content_Complex_8080 — 9 days ago

Rive Editor 0.8.4840

  • 🔑 Bring your own Agent API keys — Anthropic now, OpenAI and Gemini soon.
  • 🧠 Stateful Components — a new component type that exposes properties without view model instances. Quickly override properties directly in the inspector for faster iteration. Significantly reduces complexity and enables quick design iteration.
  • 🚧 Now in Early Access
    • 🎨 UI Refresh — tabs for State Machines and Animations, stacked Hierarchy/Assets/Data/Agent panels, and cleaner spacing throughout.
    • ⚡️ Flash to Rive — drag and drop a Flash file to convert it. Experimental, not 1:1. AS not supported.
  • 🐛 Various fixes and improvements
community.rive.app
u/guidorosso — 8 days ago

Is the react native runtime working well ?

I built a basic rive animation and i wanna test it on react native to check if it's worth it to continue learning rive to integrate it in my future apps and pay for the subscription. I've seen posts of people having lots of issues with rive on react native, and there's a lot of issues reported on the github repo of the runtime. What is your feedback of rive on react native? what are the most common issues?

I don't know how they are requesting for feedback on the new runtime when the only way to test and send them feedback is by paying for a subscription.

reddit.com
u/shootingice — 11 days ago

I’m an iOS dev and used Rive to animate the main character for my app EvoCat.

I had never animated before, so Rive helped a lot. It made the character feel alive without needing a complex animation workflow.

Still simple, but I’m pretty happy I could get this working. Would love feedback.

u/uyghurman_anzer — 14 days ago

HI i need some animation help

for context I'm planning on animating for a short film and I'm working on a simple character turnaround to get used to the program, I drew a turnaround sheet and now im struggling with figuring out how to line up the layers with the sheet. for context I draw in ibispaint X which is raster and I need to clip for shading so i decided to convert my base layers to vector. i've started on the head and the path for the head shape is in the image (i convert my layers from raster to vector in affinity)

u/IllMathematician8273 — 12 days ago

Looking to start learning rive for ui micro animations

Hey!

Hope everyone is doing amazing :)

I work in after effects and create a lot of app and saas promos. Using a mix of figma and ae.

I see Rive as the best next extension to this.

Where is the best place to learn I already have alot of youtube tutorials but want to see if there is anything I missed.

Thanks so much!

reddit.com
u/PixlCreative — 12 days ago

This tutorial covers two ways to set up list items that can be swapped between lists. Assumes you have a basic understanding of Layouts and Lists.

u/guidorosso — 15 days ago

  • 🚀 Semantics for Accessibility is in Early Access
    • Author semantic meaning directly in the editor; runtimes translate it into native accessibility trees for screen readers.
    • Supports a focused set of roles, states, and actions to start. If you hit gaps, let us know; we’re prioritizing based on real usage.
    • Try the semantic debugger. Drop in a .riv file authored with semantics, turn on a screen reader, inspect the output. Note: this is a temporary page, we'll be rolling this into the Rive Editor.
    • Web, iOS, Android, and Flutter runtimes are being prioritized for Semantic support first. These are functional but not yet released.
  • 🚀 Shift-to-snap work area markers and keyframe drags, as requested here
  • 🤖 Agent capabilities for Property Groups
  • 📄 Import unrecognized files as Blob assets
  • 👩‍💻 Scripting: first-class Mat4 type with SIMD multiply
  • 👩‍💻 Scripting: Mat4 affine fast paths + reverse-Z perspective
  • 👩‍💻 Scripting: expose view model image properties
  • 🔀 Added support for triggering actions on transitions and states
  • 🐛 Various fixes and improvements
    • fix(editor): ensure transition condition is valid before updating it
    • fix(editor): Prevent component from being pasted into its own artboard
    • fix(editor): Images in list artboard not rendered when list item added via script
    • fix: child popups displaying on top of their parent
    • fix: scripting test stack overflow on nil and find-in-files UTF-8 crash
    • fix: cctype char cast and single init GPU crash
    • fix: make `SimpleArray` constructor overflow safe(r) Expose context:preferredCanvasFormat() to Dart-hosted scripts
    • fix(editor): Fixes for some crashes and Safari text input bug
    • fixes(editor and runtime): follow path constraint on path
    • fix(runtime): Fix top level artboard hug behavior
    • fix(js): ensure onLoadError is invoked for any part of the initialization process
    • feat(Android): Hardware Bitmap Rendering
    • feat(Command Queue): Add draw key cancellation
    • refactor(apple): add cancellation handling when creating tasks
    • fix(apple): guard drawable semaphore signal during teardown
    • feat(apple): use per-renderer draw key for command server deduplication
    • fix(apple): prevent massive timestamp delta on first frame
    • fix(vulkan): Resolve driver crash on some mobile GPUs
    • fix(d3d12): sampler heap rotation must re-create immutable samplers & initialize unused SRV
    • chore(runtime): improve initialization performance of clipping shapes and ik constraints
u/guidorosso — 14 days ago