284 Commits

Author SHA1 Message Date
bodymovin
6eaf71f485 feature: scripted listener actions (#11468) f3a89390cb
Co-authored-by: hernan <hernan@rive.app>
2026-01-15 19:53:42 +00:00
philter
c5fdfdb3d7 Scripting namespaces (#11429) f810efd11a
Co-authored-by: Philip Chung <philterdesign@gmail.com>
2026-01-12 17:55:36 +00:00
bodymovin
66c35233ff chore: complete groups path effects work (#11373) 8f9dae9f36
* fix effects sorting

* fix Feature values

* invalidate effects on update instead than when dirt is added to avoid multiple invalidations per frame

* fix key conflict

Co-authored-by: hernan <hernan@rive.app>
2026-01-03 00:49:09 +00:00
bodymovin
075782ff46 feature: add group effects support (#11359) df0db41a9c
Co-authored-by: hernan <hernan@rive.app>
2026-01-02 22:55:01 +00:00
bodymovin
15a922714f Nnnnn relative data bind all paths (#11346) 41d316c675
* StateMachineListener relative view model property path
* StateMachineFireTrigger relative view model property path
* ScriptInputViewModelProperty relative view model property path

Co-authored-by: hernan <hernan@rive.app>
2026-01-02 21:11:44 +00:00
bodymovin
5a94a09dfb feature: add support for relative view model data bind paths for nested artboards (#11344) 923b32059d
feature: add support for relative view model data bind paths

Co-authored-by: hernan <hernan@rive.app>
2025-12-23 23:14:54 +00:00
bodymovin
dad43127a8 feature: support name based binding paths (#11007) a55da7f31f
* feature: support name based binding paths

Co-authored-by: hernan <hernan@rive.app>
2025-12-18 00:31:45 +00:00
philter
76973925fb Layout animation time bindable (#11264) c95fe9334e
Co-authored-by: Philip Chung <philterdesign@gmail.com>
2025-12-12 04:26:43 +00:00
philter
76eae106ad Scripting in Core Runtime (#11235) 0a5325e474
rev to luau 0.702 (#11259) b50983c49d

Co-authored-by: Luigi Rosso <luigi-rosso@users.noreply.github.com>
Co-authored-by: Philip Chung <philterdesign@gmail.com>
2025-12-11 23:09:23 +00:00
bodymovin
1d02cbcef3 feature: add support for animated clipping layouts and shapes (#11222) e2a5390cb1
Co-authored-by: hernan <hernan@rive.app>
2025-12-05 19:52:45 +00:00
bodymovin
0215cb56c0 Nnnnn add support for path effect part 3 (#11107) c27b081319
* WIP

* ui

* fix errors

* remove duplicate code

* remove empty switch case

* make pathData return required

* add web ffi path methods

Co-authored-by: Alex Gibson <agibson.uk@gmail.com>
Co-authored-by: hernan <hernan@rive.app>
2025-11-20 14:00:03 +00:00
avivian
99235b63b2 Peon Worker Script Signing (#11063) 8748f53562
* feature: signing and compiling via ffi

* feature: script signing

* fix ups

* Fix tests

Co-authored-by: Arthur Vivian <arthur@rive.app>
Co-authored-by: Luigi Rosso <luigi.rosso@gmail.com>
2025-11-19 14:38:56 +00:00
luigi-rosso
6d943f51ed feature: Script signing (#11016) 9295f20b82
* feature: signing and compiling via ffi

* feature: script signing

* fix: missed with rive scripting

* chore: more fixes

* fix: rive_native wasm

* fix: missed dispose call for the workspace

* feature: optional signing

* chore: core collision

* feature: doing actual verification

* fix: signature verification at runtime

* chore: missed files

* fix: switch order

* fix: with rive scripting flag

* fix: core def collisions

* chore: unifying enrich assets

* chore: remove unnecessary type check

* fix: signing context

Co-authored-by: Luigi Rosso <luigi-rosso@users.noreply.github.com>
2025-11-18 23:55:24 +00:00
philter
f672e1c565 Scripted Layouts C++ Runtime (#10907) 6f471b7939
Co-authored-by: Philip Chung <philterdesign@gmail.com>
2025-11-13 21:20:26 +00:00
bodymovin
88596e1e99 feature: add support for quantization and speed controls on nested artboards (#10839) 96e8debf43
feature: add support for quantization and speed controls on state machines

Co-authored-by: hernan <hernan@rive.app>
2025-10-31 18:35:53 +00:00
bodymovin
972141d736 chore: add more scripted converter features (#10939) 5f3da40291
Co-authored-by: hernan <hernan@rive.app>
2025-10-30 21:24:08 +00:00
bodymovin
007969f903 feature: add support for pausing nested artboards (#10833) 0a3cb5ac3e
* feature: add support for pausing nested artboards

Co-authored-by: hernan <hernan@rive.app>
2025-10-20 16:10:14 +00:00
bodymovin
33c9051b6a feature: add scroll threshold (#10824) 284c801953
Co-authored-by: hernan <hernan@rive.app>
2025-10-17 22:11:56 +00:00
philter
b76aed4366 feat: Scripted Boolean (#10804) cb93fbb138
Adds support for scripted booleans and boolean inputs.

Co-authored-by: Philip Chung <philterdesign@gmail.com>
2025-10-17 16:27:01 +00:00
bodymovin
a2e0b08804 feature: add support for artboards as conditions (#10788) dd59b347fb
* feature: add support for artboards as conditions

Co-authored-by: hernan <hernan@rive.app>
2025-10-16 01:32:31 +00:00
philter
57f06b62e3 Scripting support in CPP (#10685) a34d1ffe15
Get scripting working in CPP runtime. This currently only supports in editor workflow, since some additional backend pieces will be required to get it working in CPP in the runtimes.

Co-authored-by: Philip Chung <philterdesign@gmail.com>
2025-10-15 19:05:13 +00:00
bodymovin
d0faf6e011 feature: add toggle to make scroll constraint not interactive (#10680) 0b069a9936
* feature: add toggle to make scroll constraint not interactive

Co-authored-by: hernan <hernan@rive.app>
2025-09-30 20:23:54 +00:00
bodymovin
d6bb26fd98 feature: make override properties bindable (#10627) 540fab92b6
Co-authored-by: hernan <hernan@rive.app>
2025-09-19 15:16:03 +00:00
philter
36a807339c chore: Add start/end/offset properties to List follow path (#10606) b2aed6839d
Adds distinct start, end and offset properties for List's follow path as requested by Creative team, to behave similarly to Trim paths. This also fixes an issue where modifying strength wouldn't modify its rotation accordingly.

Co-authored-by: Philip Chung <philterdesign@gmail.com>
2025-09-18 16:26:43 +00:00
bodymovin
0a6a20a9d5 feature: add support for different random modes (#10538) dab3b5994d
* feature: add support for different random modes

Co-authored-by: hernan <hernan@rive.app>
2025-09-09 23:49:53 +00:00
bodymovin
03d74fb282 Rml initial work (#10542) 199af78f1e
* feature: adding rml compiler

* chore: fixing multi fields missing

* chore: cleanup

* chore: updating to latest master

* chore: allowing saving rml

* sorting items correctly

* hiding unnecessary xml props

* stripping unnecessary ids

* chore: add missed files

* chore: adding missed files

* add serializer to rev

* fractional index

* list id types

* include non runtime objects on export

* more rml

* sort root nodes

* add flags support

* fixes

* add parenting to definitions

* fix id clash

* skip computed values

* add full parentable support

* fix bit flags

* fix keyframes

* add interpolators as children

* support multiple parented objects

* handle duplicate parent

* cli

* add rml docker

* clang format

* add support for new properties in core definition

* restore initial values of json

Co-authored-by: Luigi Rosso <luigi.rosso@gmail.com>
Co-authored-by: hernan <hernan@rive.app>
2025-09-09 18:51:39 +00:00
bodymovin
aa63db2f60 Nnnnn skip properties from recording to journal (#10437) 036b51345e
* fix: add non recording propeties to json defintion

Co-authored-by: hernan <hernan@rive.app>
2025-08-23 17:38:17 +00:00
bodymovin
039568f4d1 feature: add support for list based paths (#10409) fb374dcad4
* feature: add support for list based paths

Co-authored-by: hernan <hernan@rive.app>
2025-08-21 17:47:20 +00:00
bodymovin
5579fa3c36 feat: add to number converter (#10390) 4d835a3637
add to number converter

Co-authored-by: hernan <hernan@rive.app>
2025-08-15 22:37:01 +00:00
bodymovin
7ce10e40d9 make value bindable for rounded numbers (#10379) 891f1f5d81
make value bindable

Co-authored-by: hernan <hernan@rive.app>
2025-08-14 18:22:44 +00:00
bodymovin
24f3830945 make more constraint values bindable (#10351) 9674376769
Co-authored-by: hernan <hernan@rive.app>
2025-08-11 18:56:17 +00:00
bodymovin
ac79ddcf6d feature: add support for custom enum properties (#10345) 21b8ce84f4
* feature: add enum custom property support

Co-authored-by: hernan <hernan@rive.app>
2025-08-10 23:23:03 +00:00
bodymovin
f99b9b363c feature: add support for firing triggers on state transitions (#10329) cc34f96631
* feature: add support for fiiring triggers on state transitions

Co-authored-by: hernan <hernan@rive.app>
2025-08-08 07:20:20 +00:00
philter
27e81b2a43 Support for Triggers in Custom property groups (#10322) 9af6af0361
Adds support for Triggers in Custom Property Groups. This will allow triggers to be keyframed, which can also be bound to ViewModel triggers. Currently an event has to be fired on the timeline in order to fire a ViewModel trigger via a listener.

Co-authored-by: Philip Chung <philterdesign@gmail.com>
2025-08-08 01:49:24 +00:00
bodymovin
27a0028f17 add support for view model trigger based listeners (#10323) e7ef71b568
Co-authored-by: hernan <hernan@rive.app>
2025-08-06 18:29:54 +00:00
bodymovin
6d73b0aac0 feat: add support for computed root transform values (#10257) 375455bd73
* feat: add support for computed root transform values

Co-authored-by: hernan <hernan@rive.app>
2025-07-28 21:35:18 +00:00
bodymovin
81fb99fd14 feat: add support for artboard style overrides in lists (#10212) ca58369fb6
add support for artboard style overrides in lists

Co-authored-by: hernan <hernan@rive.app>
2025-07-23 22:27:34 +00:00
philter
fa403da393 List Virtualization & Scroll Carousel (#9965) d973e8c253
Add support for List virtualization as well as a parameter to the ScrollConstraint to support infinite scrolling (Carousel).

There are important caveats with Virtualization enabled:

The List instances enough artboards to fit into their parent's bounds and when not rendered, they are pooled and reused as necessary. Lists can be non-uniform meaning they can consist of more than 1 Artboard (ViewModel) type
Does not currently work when its parent is set to wrap because more complex computations may result when wrapping
In order to use Carousel, virtualization must also be enabled
Infinite scroll only works in a single direction, not both at the same time

Co-authored-by: Philip Chung <philterdesign@gmail.com>
2025-07-08 21:48:40 +00:00
alxgibsn
07535cbf93 feat: nested artboards -> components (#10082) 7379bdd49f
* publishable mixin

* only show components in nested artboard list

* updates

* icons…

* icons

* change increment to boolean

* remove lib component keys in ext

* remove icons

* flag

* remove `didPublish` property

* get this library

* fix ups

* test fixes

* flag inspcetor icons

* move publishable to custom enums

* tool icon fix

* extra flags

* use resolver to check if nestable

* panel sizes

* regen keys

* panel width core default value

Co-authored-by: Alex Gibson <agibson.uk@gmail.com>
2025-07-08 18:37:46 +00:00
bodymovin
611f87b0c4 feature: add image based conditions (#10108) 247b3b00e8
add image based conditions

Co-authored-by: hernan <hernan@rive.app>
2025-07-03 19:13:29 +00:00
bodymovin
4d14da8162 featue: add artboard data bind support (#9996) be0b691d9b
* add artboard data bind support

Co-authored-by: hernan <hernan@rive.app>
2025-06-20 19:18:26 +00:00
bodymovin
68731dce25 feature: add support for comparing with self (#9984) f0da7e9f27
* add support for comparing with self

Co-authored-by: hernan <hernan@rive.app>
2025-06-16 19:57:14 +00:00
bodymovin
f68fd2bda4 add color custom property (#9181) de384615b2
* add color custom property

Co-authored-by: hernan <hernan@rive.app>
2025-06-13 15:11:40 +00:00
bodymovin
0b4760e074 update keys (#9949) 88befa489b
* update keys

* update file for test

Co-authored-by: hernan <hernan@rive.app>
2025-06-10 06:49:39 +00:00
bodymovin
b0682d5fbe add list to length converter (#9930) 3d3767270c
Co-authored-by: hernan <hernan@rive.app>
2025-06-09 23:03:30 +00:00
blakdragan7
47e0734849 feat(CommandQueue)File asset loader (#9799) 77172ea62b
* added file asset loader

* tests for asset loader

* made asset loader rcp

* addressed pr comments

feat(CommandQueue) Added request Ids associated with jobs (#9796) 5aedcdc61f
* added request ids that are associated with callbacks for the command queue

* modified tests to check for request id

feat: TextInput - refactor shapes for runtime text input (#9836) 455374455c
* chore: updating runtime defs

* chore: refactor TextStyle into TextStylePaint

* chore: missed hpp files

* chore: missed cpp files

* chore: fix clone of text_style_paint

* feat: more text input at runtime

* chore: cleanup

* chore: add typed child iterator

* chore: missed files

* chore: running runtime input in editor

* feat: completing integration with editor

* chore: missed file

* chore: fix builds with text disabled

* chore: use child for test

* tests: adding more tests for text input

* chore: missed test file

* chore: more coverage for child iterator

* chore: using clipping on text input

* chore: test text input selected text

* chore: dry up iterator

Co-authored-by: Jonathon Copeland <jcopela4@gmail.com>
Co-authored-by: Luigi Rosso <luigi-rosso@users.noreply.github.com>
2025-05-29 19:46:50 +00:00
bodymovin
ad0f98cc21 Nnnn data bind assets bkp 2 (#9705) e6782a6bfb
data bind images

Co-authored-by: hernan <hernan@rive.app>
2025-05-16 16:03:13 +00:00
philter
d3ec2163e8 Number to List Converter (#9622) 3a43815502
Adds a data converter to convert a number to a set of List items.
This converter is a quick way to generate list items. It can be assigned a ViewModel, and the converter will generate ViewModelInstanceListItems using the ViewModel's default instance. The ArtboardComponentList inspector now displays ViewModelPropertyLists and ViewModelPropertyNumbers in the combobox which can be selected or pickwhipped.

Co-authored-by: Philip Chung <philterdesign@gmail.com>
2025-05-12 21:03:27 +00:00
bodymovin
346fb363eb feature: add list index symbol for view model lists (#9643) 2b1a85fa6f
* add list index symbol for view model lists

Co-authored-by: hernan <hernan@rive.app>
2025-05-10 13:13:27 +00:00
philter
8d103e422c Remove artboardId & useLinkedArtboard props from List Items (#9605) 99534c2749
In order to make ViewModelInstanceListItems more generic in preparation for supporting other types of "Lists" in the future, we are removing Artboard specific properties from this core object. Instead, we infer the Artboard based on the ViewModel applied to the List Item (we use the first Artboard we find that has a ViewModel bound to it that matches the List Item's ViewModel)

Co-authored-by: Philip Chung <philterdesign@gmail.com>
2025-05-08 02:17:05 +00:00