├── .editorconfig ├── .gitattributes ├── .github ├── FUNDING.yml ├── stale.yml └── workflows │ ├── build.yml │ └── pages.yml ├── .gitignore ├── Avalonia.Skia.Lottie.sln ├── Directory.Build.props ├── LICENSE.TXT ├── README.md ├── global.json ├── nuget.config ├── samples ├── LottieDemo.Desktop │ ├── Assets │ │ └── avalonia-logo.ico │ ├── LottieDemo.Desktop.csproj │ └── Program.cs ├── LottieDemo.Web │ ├── AppBundle │ │ ├── Logo.svg │ │ ├── app.css │ │ ├── favicon.ico │ │ ├── index.html │ │ ├── main.js │ │ └── staticwebapp.config.json │ ├── LottieDemo.Web.csproj │ ├── Program.cs │ └── runtimeconfig.template.json ├── LottieDemo │ ├── App.axaml │ ├── App.axaml.cs │ ├── Assets │ │ ├── 100_percent.json │ │ ├── 12672-letter.json │ │ ├── 13031-crypto-bitcoin-pop-over.json │ │ ├── 15024-repeater.json │ │ ├── 17416-fun-with-repeaters.json │ │ ├── 21228-2d-animation-telegram-sticker.json │ │ ├── 2719-bitcoin-to-the-moon.json │ │ ├── 35975-chip-lines.json │ │ ├── 40645-web-design.json │ │ ├── 42495-payment-security.json │ │ ├── DonutGraphic_V2.json │ │ ├── LottieLogo1.json │ │ ├── Plane.json │ │ ├── StreetByMorning.json │ │ ├── TwitterHeart.json │ │ ├── ___.json │ │ ├── a_mountain.json │ │ ├── accept_arrows.json │ │ ├── android_fingerprint.json │ │ ├── anima.json │ │ ├── animated_graph.json │ │ ├── animated_laptop_.json │ │ ├── animated_logo.json │ │ ├── atm_link.json │ │ ├── autoconnect_loading.json │ │ ├── avalonia-logo.ico │ │ ├── banner_animation.json │ │ ├── bb8.json │ │ ├── bell.json │ │ ├── birds.json │ │ ├── bitcoin_to_the_moon.json │ │ ├── blood_transfusion_kawaii.json │ │ ├── bomb.json │ │ ├── books.json │ │ ├── bootymovin.json │ │ ├── bounching_ball.json │ │ ├── brain__.json │ │ ├── browser.json │ │ ├── building_evolution_animation.json │ │ ├── camera.json │ │ ├── cancel_button.json │ │ ├── cash.json │ │ ├── change_to_search_bar.json │ │ ├── check_pop.json │ │ ├── chinese.json │ │ ├── clock.json │ │ ├── cloud_disconnection.json │ │ ├── code_invite_success.json │ │ ├── coding_ape.json │ │ ├── coinfall.json │ │ ├── colorline.json │ │ ├── confusion.json │ │ ├── construction_site.json │ │ ├── cooking_app.json │ │ ├── countdown.json │ │ ├── credit_card.json │ │ ├── credit_level.json │ │ ├── cube_loader.json │ │ ├── cubo_livre.json │ │ ├── curly_hair_character_loop.json │ │ ├── cycle_animation.json │ │ ├── day_night_cycle.json │ │ ├── day_of_the_dead.json │ │ ├── deadpool.json │ │ ├── delivery_van.json │ │ ├── dna_loader.json │ │ ├── dog.json │ │ ├── done.json │ │ ├── download copy.json │ │ ├── download.json │ │ ├── downloader.json │ │ ├── drop.json │ │ ├── drop_to_refresh.json │ │ ├── edited-landscape.json │ │ ├── elephant_trunk_swing.json │ │ ├── emoji_shock.json │ │ ├── emoji_tongue.json │ │ ├── emoji_wink.json │ │ ├── empty_status.json │ │ ├── estimate.json │ │ ├── fab_animate.json │ │ ├── fabulous_onboarding_animation.json │ │ ├── favourite_app_icon.json │ │ ├── file_error.json │ │ ├── finance_animation.json │ │ ├── fingerprint_scanner.json │ │ ├── finish,done.json │ │ ├── fish.json │ │ ├── flag_of_mexico.json │ │ ├── flow.json │ │ ├── frog.json │ │ ├── funky_chicken.json │ │ ├── gaming_pad.json │ │ ├── gears.json │ │ ├── glow_loading.json │ │ ├── gradient_animated_background.json │ │ ├── happy birthday.json │ │ ├── hardware.json │ │ ├── helloworld.json │ │ ├── hint_01.json │ │ ├── i'm_thirsty!.json │ │ ├── immiguide_.json │ │ ├── in-app_purchasing.json │ │ ├── india.json │ │ ├── infinite_rainbow.json │ │ ├── intelia_logo_animation.json │ │ ├── iphone_x_loading.json │ │ ├── jojo_the_bird.json │ │ ├── jolly_walker.json │ │ ├── judgement.json │ │ ├── kod.io_logo_reveal.json │ │ ├── la_calavera.json │ │ ├── landing_page.json │ │ ├── lego_loader.json │ │ ├── light.json │ │ ├── lightsaber.json │ │ ├── little_girl_jumping_-_loader.json │ │ ├── loading copy.json │ │ ├── loading disc.json │ │ ├── loading...json │ │ ├── loading.json │ │ ├── loading_semicircle.json │ │ ├── location.json │ │ ├── location_marker.json │ │ ├── location_pin.json │ │ ├── lottie_logo_1.json │ │ ├── lottiepreview_qr.json │ │ ├── mailsent.json │ │ ├── man_and_pay_with_credit_card.json │ │ ├── map_animation.json │ │ ├── material loading.json │ │ ├── material_loader.json │ │ ├── material_loading_2.json │ │ ├── material_wave_loading.json │ │ ├── me_at_office.json │ │ ├── medal.json │ │ ├── menuButton2.json │ │ ├── menu_button_alt.json │ │ ├── mindful.json │ │ ├── mnemonics.json │ │ ├── money.json │ │ ├── motorcycle.json │ │ ├── moving bus.json │ │ ├── moving_eye.json │ │ ├── no_internet_connection.json │ │ ├── notification_request.json │ │ ├── octopus.json │ │ ├── ofrenda.json │ │ ├── on_off_settings_switch.json │ │ ├── pagado.json │ │ ├── pagination.json │ │ ├── panel2d.json │ │ ├── passport.json │ │ ├── patient_successfully_added.json │ │ ├── payme.json │ │ ├── peli-canon.json │ │ ├── pen_tool_loop.json │ │ ├── pencil_write.json │ │ ├── penguin.json │ │ ├── permission.json │ │ ├── personal_character.json │ │ ├── ph_onboarding_.json │ │ ├── phonological.json │ │ ├── pink_drink_machine.json │ │ ├── plane_to_dollar.json │ │ ├── play,_pause.json │ │ ├── play_and_like_it.json │ │ ├── play_button.json │ │ ├── playing.json │ │ ├── point.json │ │ ├── poo_loader.json │ │ ├── powerupp_app_onboard (1).json │ │ ├── powerupp_app_onboard.json │ │ ├── preloader.json │ │ ├── print.json │ │ ├── progress_bar 2.json │ │ ├── progress_bar.json │ │ ├── rating.json │ │ ├── rectangles.json │ │ ├── red_pocket_pop_up.json │ │ ├── rejection.json │ │ ├── retweet.json │ │ ├── rey.json │ │ ├── rocket.json │ │ ├── rocksauce_title_card.json │ │ ├── scan.json │ │ ├── scan_qr_code_success.json │ │ ├── search_button.json │ │ ├── servishero_loading.json │ │ ├── simple_loader.json │ │ ├── slack_app_loader.json │ │ ├── snowcation.json │ │ ├── socar_logo.json │ │ ├── soda_loader.json │ │ ├── spacehub.json │ │ ├── spider.json │ │ ├── spinner loading.json │ │ ├── splashy_loader.json │ │ ├── square_drop_loader.json │ │ ├── star 2.json │ │ ├── streetby_test_loading.json │ │ ├── submit button.json │ │ ├── summer.json │ │ ├── swiftkey-logo.json │ │ ├── swipe_menu.json │ │ ├── swipe_right_indicator.json │ │ ├── switch_loop.json │ │ ├── the_final_frontier.json │ │ ├── tigerobo_demo.json │ │ ├── timer_(3_second_loop).json │ │ ├── toggle.json │ │ ├── toggle_switch.json │ │ ├── touch_id.json │ │ ├── tractor.json │ │ ├── tractor_animation.json │ │ ├── trail_loading.json │ │ ├── trophy.json │ │ ├── truecosmos.json │ │ ├── turbine.json │ │ ├── typing dot.json │ │ ├── uk.json │ │ ├── updating_map.json │ │ ├── us.json │ │ ├── video_cam.json │ │ ├── vigilance_camera.json │ │ ├── volume_indicator.json │ │ ├── volume_shake_indicator.json │ │ ├── vr_animation.json │ │ ├── vr_sickness.json │ │ ├── walking.json │ │ ├── walking_arrow.json │ │ ├── wallet recharge.json │ │ ├── washing_machine.json │ │ ├── win_result_2.json │ │ ├── wolf_peek.json │ │ ├── x_pop.json │ │ ├── xamarin_logo_2.json │ │ ├── xuanwheel_logo.json │ │ ├── yoga_carpet.json │ │ └── youtube_icon_reveal.json │ ├── LottieDemo.csproj │ ├── ViewModels │ │ ├── AssetViewModel.cs │ │ └── MainViewModel.cs │ └── Views │ │ ├── MainView.axaml │ │ ├── MainView.axaml.cs │ │ ├── MainWindow.axaml │ │ └── MainWindow.axaml.cs └── LottieToSvg │ ├── App.axaml │ ├── App.axaml.cs │ ├── LottieToSvg.csproj │ ├── MainWindow.axaml │ ├── MainWindow.axaml.cs │ └── Program.cs └── src └── Lottie ├── Lottie.cs ├── Lottie.csproj ├── LottieCommand.cs ├── LottieCompositionCustomVisualHandler.cs ├── LottiePayload.cs ├── Properties └── AssemblyInfo.cs └── ServiceProviderExtensions.cs /.editorconfig: -------------------------------------------------------------------------------- 1 | # editorconfig.org 2 | 3 | # top-most EditorConfig file 4 | root = true 5 | 6 | # Default settings: 7 | # A newline ending every file 8 | # Use 4 spaces as indentation 9 | [*] 10 | insert_final_newline = true 11 | indent_style = space 12 | indent_size = 4 13 | 14 | # C# files 15 | [*.cs] 16 | # New line preferences 17 | csharp_new_line_before_open_brace = all 18 | csharp_new_line_before_else = true 19 | csharp_new_line_before_catch = true 20 | csharp_new_line_before_finally = true 21 | csharp_new_line_before_members_in_object_initializers = true 22 | csharp_new_line_before_members_in_anonymous_types = true 23 | csharp_new_line_between_query_expression_clauses = true 24 | 25 | # Indentation preferences 26 | csharp_indent_block_contents = true 27 | csharp_indent_braces = false 28 | csharp_indent_case_contents = true 29 | csharp_indent_switch_labels = true 30 | csharp_indent_labels = one_less_than_current 31 | 32 | # avoid this. unless absolutely necessary 33 | dotnet_style_qualification_for_field = false:suggestion 34 | dotnet_style_qualification_for_property = false:suggestion 35 | dotnet_style_qualification_for_method = false:suggestion 36 | dotnet_style_qualification_for_event = false:suggestion 37 | 38 | # prefer var 39 | csharp_style_var_for_built_in_types = true 40 | csharp_style_var_when_type_is_apparent = true 41 | csharp_style_var_elsewhere = true:suggestion 42 | 43 | # use language keywords instead of BCL types 44 | dotnet_style_predefined_type_for_locals_parameters_members = true:suggestion 45 | dotnet_style_predefined_type_for_member_access = true:suggestion 46 | 47 | # name all constant fields using PascalCase 48 | dotnet_naming_rule.constant_fields_should_be_pascal_case.severity = suggestion 49 | dotnet_naming_rule.constant_fields_should_be_pascal_case.symbols = constant_fields 50 | dotnet_naming_rule.constant_fields_should_be_pascal_case.style = pascal_case_style 51 | 52 | dotnet_naming_symbols.constant_fields.applicable_kinds = field 53 | dotnet_naming_symbols.constant_fields.required_modifiers = const 54 | 55 | dotnet_naming_style.pascal_case_style.capitalization = pascal_case 56 | 57 | # static fields should have s_ prefix 58 | dotnet_naming_rule.static_fields_should_have_prefix.severity = suggestion 59 | dotnet_naming_rule.static_fields_should_have_prefix.symbols = static_fields 60 | dotnet_naming_rule.static_fields_should_have_prefix.style = static_prefix_style 61 | 62 | dotnet_naming_symbols.static_fields.applicable_kinds = field 63 | dotnet_naming_symbols.static_fields.required_modifiers = static 64 | 65 | dotnet_naming_style.static_prefix_style.required_prefix = s_ 66 | dotnet_naming_style.static_prefix_style.capitalization = camel_case 67 | 68 | # internal and private fields should be _camelCase 69 | dotnet_naming_rule.camel_case_for_private_internal_fields.severity = suggestion 70 | dotnet_naming_rule.camel_case_for_private_internal_fields.symbols = private_internal_fields 71 | dotnet_naming_rule.camel_case_for_private_internal_fields.style = camel_case_underscore_style 72 | 73 | dotnet_naming_symbols.private_internal_fields.applicable_kinds = field 74 | dotnet_naming_symbols.private_internal_fields.applicable_accessibilities = private, internal 75 | 76 | dotnet_naming_style.camel_case_underscore_style.required_prefix = _ 77 | dotnet_naming_style.camel_case_underscore_style.capitalization = camel_case 78 | 79 | # use accessibility modifiers 80 | dotnet_style_require_accessibility_modifiers = for_non_interface_members:suggestion 81 | 82 | # Code style defaults 83 | dotnet_sort_system_directives_first = true 84 | csharp_preserve_single_line_blocks = true 85 | csharp_preserve_single_line_statements = false 86 | 87 | # Expression-level preferences 88 | dotnet_style_object_initializer = true:suggestion 89 | dotnet_style_collection_initializer = true:suggestion 90 | dotnet_style_explicit_tuple_names = true:suggestion 91 | dotnet_style_coalesce_expression = true:suggestion 92 | dotnet_style_null_propagation = true:suggestion 93 | 94 | # Expression-bodied members 95 | csharp_style_expression_bodied_methods = false:none 96 | csharp_style_expression_bodied_constructors = false:none 97 | csharp_style_expression_bodied_operators = false:none 98 | csharp_style_expression_bodied_properties = true:none 99 | csharp_style_expression_bodied_indexers = true:none 100 | csharp_style_expression_bodied_accessors = true:none 101 | 102 | # Pattern matching 103 | csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion 104 | csharp_style_pattern_matching_over_as_with_null_check = true:suggestion 105 | csharp_style_inlined_variable_declaration = true:suggestion 106 | 107 | # Null checking preferences 108 | csharp_style_throw_expression = true:suggestion 109 | csharp_style_conditional_delegate_call = true:suggestion 110 | 111 | # Space preferences 112 | csharp_space_after_cast = false 113 | csharp_space_after_colon_in_inheritance_clause = true 114 | csharp_space_after_comma = true 115 | csharp_space_after_dot = false 116 | csharp_space_after_keywords_in_control_flow_statements = true 117 | csharp_space_after_semicolon_in_for_statement = true 118 | csharp_space_around_binary_operators = before_and_after 119 | csharp_space_around_declaration_statements = do_not_ignore 120 | csharp_space_before_colon_in_inheritance_clause = true 121 | csharp_space_before_comma = false 122 | csharp_space_before_dot = false 123 | csharp_space_before_open_square_brackets = false 124 | csharp_space_before_semicolon_in_for_statement = false 125 | csharp_space_between_empty_square_brackets = false 126 | csharp_space_between_method_call_empty_parameter_list_parentheses = false 127 | csharp_space_between_method_call_name_and_opening_parenthesis = false 128 | csharp_space_between_method_call_parameter_list_parentheses = false 129 | csharp_space_between_method_declaration_empty_parameter_list_parentheses = false 130 | csharp_space_between_method_declaration_name_and_open_parenthesis = false 131 | csharp_space_between_method_declaration_parameter_list_parentheses = false 132 | csharp_space_between_parentheses = false 133 | csharp_space_between_square_brackets = false 134 | 135 | # Xaml files 136 | [*.{xaml,axaml}] 137 | indent_style = space 138 | indent_size = 2 139 | 140 | # Xml project files 141 | [*.{csproj,vcxproj,vcxproj.filters,proj,nativeproj,locproj}] 142 | indent_size = 2 143 | 144 | # Xml build files 145 | [*.builds] 146 | indent_size = 2 147 | 148 | # Xml files 149 | [*.{xml,stylecop,resx,ruleset}] 150 | indent_size = 2 151 | 152 | # Xml config files 153 | [*.{props,targets,config,nuspec}] 154 | indent_size = 2 155 | 156 | # Shell scripts 157 | [*.sh] 158 | end_of_line = lf 159 | [*.{cmd, bat}] 160 | end_of_line = crlf -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: [wieslawsoltes] 2 | -------------------------------------------------------------------------------- /.github/stale.yml: -------------------------------------------------------------------------------- 1 | # https://probot.github.io/apps/stale/ 2 | 3 | # Number of days of inactivity before an issue becomes stale 4 | daysUntilStale: 60 5 | 6 | # Number of days of inactivity before a stale issue is closed 7 | daysUntilClose: 7 8 | 9 | # Issues with these labels will never be considered stale 10 | exemptLabels: 11 | - pinned 12 | - security 13 | 14 | # Label to use when marking an issue as stale 15 | staleLabel: stale 16 | 17 | # Comment to post when marking an issue as stale. Set to `false` to disable 18 | markComment: > 19 | This issue has been automatically marked as stale because it has not had 20 | recent activity. It will be closed if no further activity occurs. Thank you 21 | for your contributions. 22 | 23 | # Comment to post when closing a stale issue. Set to `false` to disable 24 | closeComment: true 25 | -------------------------------------------------------------------------------- /.github/workflows/build.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | - release/* 8 | pull_request: 9 | branches: 10 | - main 11 | 12 | jobs: 13 | build: 14 | strategy: 15 | matrix: 16 | os: [ubuntu-latest, windows-latest, macos-latest] 17 | name: Build ${{ matrix.os }} 18 | runs-on: ${{ matrix.os }} 19 | 20 | steps: 21 | - uses: actions/checkout@v1 22 | - name: Setup .NET Core 23 | uses: actions/setup-dotnet@v1 24 | - name: Install wasm-tools 25 | run: dotnet workload install wasm-tools wasm-experimental 26 | - name: Build Release 27 | run: dotnet build --configuration Release 28 | - name: Test Release 29 | run: dotnet test --configuration Release 30 | -------------------------------------------------------------------------------- /.github/workflows/pages.yml: -------------------------------------------------------------------------------- 1 | name: Deploy to GitHub Pages 2 | 3 | env: 4 | PROJECT_PATH: samples/LottieDemo.Web/LottieDemo.Web.csproj 5 | OUTPUT_PATH: samples/LottieDemo.Web/bin/Release/net7.0/browser-wasm/AppBundle 6 | on: 7 | push: 8 | branches: [ main ] 9 | 10 | jobs: 11 | deploy-to-github-pages: 12 | runs-on: ubuntu-latest 13 | steps: 14 | - uses: actions/checkout@v2 15 | 16 | - name: Setup .NET Core SDK 17 | uses: actions/setup-dotnet@v1.9.0 18 | 19 | - name: Install wasm-tools 20 | run: dotnet workload install wasm-tools wasm-experimental 21 | 22 | - name: Install DotNetCompress 23 | run: dotnet tool install --global DotNetCompress --version 2.0.0 --no-cache 24 | 25 | - name: Publish .NET Project 26 | run: dotnet publish $PROJECT_PATH -c Release -o release --nologo 27 | 28 | - name: Change base-tag in index.html 29 | run: sed -i 's///g' $OUTPUT_PATH/index.html 30 | 31 | - name: copy index.html to 404.html 32 | run: cp $OUTPUT_PATH/index.html $OUTPUT_PATH/404.html 33 | 34 | - name: Compress Output using Brotli 35 | run: DotNetCompress -d $OUTPUT_PATH/ -p "*.dll" "*.js" "*.wasm" --format br --threads 4 36 | 37 | - name: Compress Output using GZip 38 | run: DotNetCompress -d $OUTPUT_PATH -p "*.dll" "*.js" "*.wasm" --format gz --threads 4 39 | 40 | - name: Add .nojekyll file 41 | run: touch $OUTPUT_PATH/.nojekyll 42 | 43 | - name: Commit wwwroot to GitHub Pages 44 | uses: JamesIves/github-pages-deploy-action@4.1.7 45 | with: 46 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 47 | BRANCH: gh-pages 48 | FOLDER: ${{ env.OUTPUT_PATH }} 49 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ## Ignore Visual Studio temporary files, build results, and 2 | ## files generated by popular Visual Studio add-ons. 3 | ## 4 | ## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore 5 | 6 | # User-specific files 7 | *.suo 8 | *.user 9 | *.userosscache 10 | *.sln.docstates 11 | 12 | # User-specific files (MonoDevelop/Xamarin Studio) 13 | *.userprefs 14 | 15 | # Build results 16 | [Dd]ebug/ 17 | [Dd]ebugPublic/ 18 | [Rr]elease/ 19 | [Rr]eleases/ 20 | x64/ 21 | x86/ 22 | bld/ 23 | [Bb]in/ 24 | [Oo]bj/ 25 | [Ll]og/ 26 | 27 | # Visual Studio 2015 cache/options directory 28 | .vs/ 29 | # Uncomment if you have tasks that create the project's static files in wwwroot 30 | #wwwroot/ 31 | 32 | # MSTest test Results 33 | [Tt]est[Rr]esult*/ 34 | [Bb]uild[Ll]og.* 35 | 36 | # NUNIT 37 | *.VisualState.xml 38 | TestResult.xml 39 | 40 | # Build Results of an ATL Project 41 | [Dd]ebugPS/ 42 | [Rr]eleasePS/ 43 | dlldata.c 44 | 45 | # .NET Core 46 | project.lock.json 47 | project.fragment.lock.json 48 | artifacts/ 49 | **/Properties/launchSettings.json 50 | 51 | *_i.c 52 | *_p.c 53 | *_i.h 54 | *.ilk 55 | *.meta 56 | *.obj 57 | *.pch 58 | *.pdb 59 | *.pgc 60 | *.pgd 61 | *.rsp 62 | *.sbr 63 | *.tlb 64 | *.tli 65 | *.tlh 66 | *.tmp 67 | *.tmp_proj 68 | *.log 69 | *.vspscc 70 | *.vssscc 71 | .builds 72 | *.pidb 73 | *.svclog 74 | *.scc 75 | 76 | # Chutzpah Test files 77 | _Chutzpah* 78 | 79 | # Visual C++ cache files 80 | ipch/ 81 | *.aps 82 | *.ncb 83 | *.opendb 84 | *.opensdf 85 | *.sdf 86 | *.cachefile 87 | *.VC.db 88 | *.VC.VC.opendb 89 | 90 | # Visual Studio profiler 91 | *.psess 92 | *.vsp 93 | *.vspx 94 | *.sap 95 | 96 | # TFS 2012 Local Workspace 97 | $tf/ 98 | 99 | # Guidance Automation Toolkit 100 | *.gpState 101 | 102 | # ReSharper is a .NET coding add-in 103 | _ReSharper*/ 104 | *.[Rr]e[Ss]harper 105 | *.DotSettings.user 106 | 107 | # JustCode is a .NET coding add-in 108 | .JustCode 109 | 110 | # TeamCity is a build add-in 111 | _TeamCity* 112 | 113 | # DotCover is a Code Coverage Tool 114 | *.dotCover 115 | 116 | # Visual Studio code coverage results 117 | *.coverage 118 | *.coveragexml 119 | 120 | # NCrunch 121 | _NCrunch_* 122 | .*crunch*.local.xml 123 | nCrunchTemp_* 124 | 125 | # MightyMoose 126 | *.mm.* 127 | AutoTest.Net/ 128 | 129 | # Web workbench (sass) 130 | .sass-cache/ 131 | 132 | # Installshield output folder 133 | [Ee]xpress/ 134 | 135 | # DocProject is a documentation generator add-in 136 | DocProject/buildhelp/ 137 | DocProject/Help/*.HxT 138 | DocProject/Help/*.HxC 139 | DocProject/Help/*.hhc 140 | DocProject/Help/*.hhk 141 | DocProject/Help/*.hhp 142 | DocProject/Help/Html2 143 | DocProject/Help/html 144 | 145 | # Click-Once directory 146 | publish/ 147 | 148 | # Publish Web Output 149 | *.[Pp]ublish.xml 150 | *.azurePubxml 151 | # TODO: Comment the next line if you want to checkin your web deploy settings 152 | # but database connection strings (with potential passwords) will be unencrypted 153 | *.pubxml 154 | *.publishproj 155 | 156 | # Microsoft Azure Web App publish settings. Comment the next line if you want to 157 | # checkin your Azure Web App publish settings, but sensitive information contained 158 | # in these scripts will be unencrypted 159 | PublishScripts/ 160 | 161 | # NuGet Packages 162 | *.nupkg 163 | # The packages folder can be ignored because of Package Restore 164 | **/packages/* 165 | # except build/, which is used as an MSBuild target. 166 | !**/packages/build/ 167 | # Uncomment if necessary however generally it will be regenerated when needed 168 | #!**/packages/repositories.config 169 | # NuGet v3's project.json files produces more ignorable files 170 | *.nuget.props 171 | *.nuget.targets 172 | 173 | # Microsoft Azure Build Output 174 | csx/ 175 | *.build.csdef 176 | 177 | # Microsoft Azure Emulator 178 | ecf/ 179 | rcf/ 180 | 181 | # Windows Store app package directories and files 182 | AppPackages/ 183 | BundleArtifacts/ 184 | Package.StoreAssociation.xml 185 | _pkginfo.txt 186 | 187 | # Visual Studio cache files 188 | # files ending in .cache can be ignored 189 | *.[Cc]ache 190 | # but keep track of directories ending in .cache 191 | !*.[Cc]ache/ 192 | 193 | # Others 194 | ClientBin/ 195 | ~$* 196 | *~ 197 | *.dbmdl 198 | *.dbproj.schemaview 199 | *.jfm 200 | *.pfx 201 | *.publishsettings 202 | orleans.codegen.cs 203 | 204 | # Since there are multiple workflows, uncomment next line to ignore bower_components 205 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) 206 | #bower_components/ 207 | 208 | # RIA/Silverlight projects 209 | Generated_Code/ 210 | 211 | # Backup & report files from converting an old project file 212 | # to a newer Visual Studio version. Backup files are not needed, 213 | # because we have git ;-) 214 | _UpgradeReport_Files/ 215 | Backup*/ 216 | UpgradeLog*.XML 217 | UpgradeLog*.htm 218 | 219 | # SQL Server files 220 | *.mdf 221 | *.ldf 222 | *.ndf 223 | 224 | # Business Intelligence projects 225 | *.rdl.data 226 | *.bim.layout 227 | *.bim_*.settings 228 | 229 | # Microsoft Fakes 230 | FakesAssemblies/ 231 | 232 | # GhostDoc plugin setting file 233 | *.GhostDoc.xml 234 | 235 | # Node.js Tools for Visual Studio 236 | .ntvs_analysis.dat 237 | node_modules/ 238 | 239 | # Typescript v1 declaration files 240 | typings/ 241 | 242 | # Visual Studio 6 build log 243 | *.plg 244 | 245 | # Visual Studio 6 workspace options file 246 | *.opt 247 | 248 | # Visual Studio 6 auto-generated workspace file (contains which files were open etc.) 249 | *.vbw 250 | 251 | # Visual Studio LightSwitch build output 252 | **/*.HTMLClient/GeneratedArtifacts 253 | **/*.DesktopClient/GeneratedArtifacts 254 | **/*.DesktopClient/ModelManifest.xml 255 | **/*.Server/GeneratedArtifacts 256 | **/*.Server/ModelManifest.xml 257 | _Pvt_Extensions 258 | 259 | # Paket dependency manager 260 | .paket/paket.exe 261 | paket-files/ 262 | 263 | # FAKE - F# Make 264 | .fake/ 265 | 266 | # JetBrains Rider 267 | .idea/ 268 | *.sln.iml 269 | 270 | # CodeRush 271 | .cr/ 272 | 273 | # Python Tools for Visual Studio (PTVS) 274 | __pycache__/ 275 | *.pyc 276 | 277 | # Cake - Uncomment if you are using it 278 | tools/** 279 | # !tools/packages.config 280 | 281 | # Telerik's JustMock configuration file 282 | *.jmconfig 283 | 284 | # BizTalk build output 285 | *.btp.cs 286 | *.btm.cs 287 | *.odx.cs 288 | *.xsd.cs 289 | 290 | # macOS 291 | .DS_Store 292 | -------------------------------------------------------------------------------- /Avalonia.Skia.Lottie.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{63AB3979-8A62-4F66-923F-0080C6D384DE}" 4 | EndProject 5 | Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "samples", "samples", "{BB17F9CC-92ED-43AD-B21E-3AFECEFE0AD1}" 6 | EndProject 7 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lottie", "src\Lottie\Lottie.csproj", "{DAE98D56-C766-4B9C-BEE4-947D72897D46}" 8 | EndProject 9 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LottieDemo", "samples\LottieDemo\LottieDemo.csproj", "{B5D2A1C7-8DB5-4825-B44B-5B1B780FE094}" 10 | EndProject 11 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LottieDemo.Desktop", "samples\LottieDemo.Desktop\LottieDemo.Desktop.csproj", "{4BAE6D71-C02F-4416-9A4F-35961EBFA022}" 12 | EndProject 13 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LottieDemo.Web", "samples\LottieDemo.Web\LottieDemo.Web.csproj", "{A84F5C89-5C20-452F-B914-9B1A77AC444A}" 14 | EndProject 15 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LottieToSvg", "samples\LottieToSvg\LottieToSvg.csproj", "{CE7E4ADC-8AD8-4973-8F89-58669CC38DA8}" 16 | EndProject 17 | Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{221169E3-B43C-4E97-8B5E-D070B3FCD4FF}" 18 | ProjectSection(SolutionItems) = preProject 19 | Directory.Build.props = Directory.Build.props 20 | nuget.config = nuget.config 21 | global.json = global.json 22 | EndProjectSection 23 | EndProject 24 | Global 25 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 26 | Debug|Any CPU = Debug|Any CPU 27 | Release|Any CPU = Release|Any CPU 28 | EndGlobalSection 29 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 30 | {DAE98D56-C766-4B9C-BEE4-947D72897D46}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 31 | {DAE98D56-C766-4B9C-BEE4-947D72897D46}.Debug|Any CPU.Build.0 = Debug|Any CPU 32 | {DAE98D56-C766-4B9C-BEE4-947D72897D46}.Release|Any CPU.ActiveCfg = Release|Any CPU 33 | {DAE98D56-C766-4B9C-BEE4-947D72897D46}.Release|Any CPU.Build.0 = Release|Any CPU 34 | {B5D2A1C7-8DB5-4825-B44B-5B1B780FE094}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 35 | {B5D2A1C7-8DB5-4825-B44B-5B1B780FE094}.Debug|Any CPU.Build.0 = Debug|Any CPU 36 | {B5D2A1C7-8DB5-4825-B44B-5B1B780FE094}.Release|Any CPU.ActiveCfg = Release|Any CPU 37 | {B5D2A1C7-8DB5-4825-B44B-5B1B780FE094}.Release|Any CPU.Build.0 = Release|Any CPU 38 | {4BAE6D71-C02F-4416-9A4F-35961EBFA022}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 39 | {4BAE6D71-C02F-4416-9A4F-35961EBFA022}.Debug|Any CPU.Build.0 = Debug|Any CPU 40 | {4BAE6D71-C02F-4416-9A4F-35961EBFA022}.Release|Any CPU.ActiveCfg = Release|Any CPU 41 | {4BAE6D71-C02F-4416-9A4F-35961EBFA022}.Release|Any CPU.Build.0 = Release|Any CPU 42 | {A84F5C89-5C20-452F-B914-9B1A77AC444A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 43 | {A84F5C89-5C20-452F-B914-9B1A77AC444A}.Debug|Any CPU.Build.0 = Debug|Any CPU 44 | {A84F5C89-5C20-452F-B914-9B1A77AC444A}.Release|Any CPU.ActiveCfg = Release|Any CPU 45 | {A84F5C89-5C20-452F-B914-9B1A77AC444A}.Release|Any CPU.Build.0 = Release|Any CPU 46 | {CE7E4ADC-8AD8-4973-8F89-58669CC38DA8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 47 | {CE7E4ADC-8AD8-4973-8F89-58669CC38DA8}.Debug|Any CPU.Build.0 = Debug|Any CPU 48 | {CE7E4ADC-8AD8-4973-8F89-58669CC38DA8}.Release|Any CPU.ActiveCfg = Release|Any CPU 49 | {CE7E4ADC-8AD8-4973-8F89-58669CC38DA8}.Release|Any CPU.Build.0 = Release|Any CPU 50 | EndGlobalSection 51 | GlobalSection(NestedProjects) = preSolution 52 | {DAE98D56-C766-4B9C-BEE4-947D72897D46} = {63AB3979-8A62-4F66-923F-0080C6D384DE} 53 | {B5D2A1C7-8DB5-4825-B44B-5B1B780FE094} = {BB17F9CC-92ED-43AD-B21E-3AFECEFE0AD1} 54 | {4BAE6D71-C02F-4416-9A4F-35961EBFA022} = {BB17F9CC-92ED-43AD-B21E-3AFECEFE0AD1} 55 | {A84F5C89-5C20-452F-B914-9B1A77AC444A} = {BB17F9CC-92ED-43AD-B21E-3AFECEFE0AD1} 56 | {CE7E4ADC-8AD8-4973-8F89-58669CC38DA8} = {BB17F9CC-92ED-43AD-B21E-3AFECEFE0AD1} 57 | EndGlobalSection 58 | EndGlobal 59 | -------------------------------------------------------------------------------- /Directory.Build.props: -------------------------------------------------------------------------------- 1 | 2 | 3 | 11.3.0 4 | 5 | Wiesław Šoltés 6 | Wiesław Šoltés 7 | Copyright © Wiesław Šoltés 2025 8 | https://github.com/wieslawsoltes/Avalonia.Skia.Lottie 9 | 10 | 11 | latest 12 | latest 13 | 14 | 15 | 11.3.0 16 | 2.88.9 17 | 18 | 19 | -------------------------------------------------------------------------------- /LICENSE.TXT: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) Wiesław Šoltés 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Lottie 2 | 3 | [![CI](https://github.com/wieslawsoltes/Avalonia.Skia.Lottie/actions/workflows/build.yml/badge.svg)](https://github.com/wieslawsoltes/Avalonia.Skia.Lottie/actions/workflows/build.yml) 4 | 5 | [![NuGet](https://img.shields.io/nuget/v/Lottie.svg)](https://www.nuget.org/packages/Lottie) 6 | [![NuGet](https://img.shields.io/nuget/dt/Lottie.svg)](https://www.nuget.org/packages/Lottie) 7 | 8 | A lottie animation player control for Avalonia. 9 | 10 | ## Usage 11 | 12 | ```xaml 13 | 14 | ``` 15 | 16 | ## Links 17 | 18 | - [Avalonia](https://avaloniaui.net/) 19 | - [Skottie - Lottie Animation Player](https://skia.org/docs/user/modules/skottie/) 20 | - [Skottie source code](https://skia.org/docs/user/modules/skottie/) 21 | - [SkiaSharp.Skottie](https://www.nuget.org/packages/SkiaSharp.Skottie) 22 | 23 | ## License 24 | 25 | Lottie is licensed under the [MIT license](LICENSE.TXT). 26 | -------------------------------------------------------------------------------- /global.json: -------------------------------------------------------------------------------- 1 | { 2 | "sdk": { 3 | "version": "9.0.100", 4 | "rollForward": "latestMinor", 5 | "allowPrerelease": true 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /nuget.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /samples/LottieDemo.Desktop/Assets/avalonia-logo.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wieslawsoltes/Lottie/b944b182b0c2d05db0b4fb1b0ff2771dcf2f22a3/samples/LottieDemo.Desktop/Assets/avalonia-logo.ico -------------------------------------------------------------------------------- /samples/LottieDemo.Desktop/LottieDemo.Desktop.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | WinExe 4 | net9.0 5 | enable 6 | False 7 | copyused 8 | true 9 | LottieDemo.Desktop 10 | Assets/avalonia-logo.ico 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /samples/LottieDemo.Desktop/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Avalonia; 3 | 4 | namespace LottieDemo.Desktop; 5 | 6 | class Program 7 | { 8 | [STAThread] 9 | public static void Main(string[] args) => BuildAvaloniaApp() 10 | .StartWithClassicDesktopLifetime(args); 11 | 12 | public static AppBuilder BuildAvaloniaApp() 13 | => AppBuilder.Configure() 14 | .UsePlatformDetect() 15 | .UseSkia() 16 | .LogToTrace(); 17 | } 18 | -------------------------------------------------------------------------------- /samples/LottieDemo.Web/AppBundle/Logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /samples/LottieDemo.Web/AppBundle/app.css: -------------------------------------------------------------------------------- 1 | .highlight { 2 | color: white; 3 | font-size: 2.5rem; 4 | display: block; 5 | } 6 | 7 | .purple { 8 | color: #8b44ac; 9 | } 10 | 11 | .icon { 12 | opacity : 0.05; 13 | height: 35%; 14 | width: 35%; 15 | position : absolute; 16 | background-repeat: no-repeat; 17 | right: 0px; 18 | bottom: 0px; 19 | margin-right: 3%; 20 | margin-bottom: 5%; 21 | z-index: 5000; 22 | background-position: right bottom; 23 | pointer-events: none; 24 | } 25 | 26 | #avalonia-splash a{ 27 | color: whitesmoke; 28 | text-decoration: none; 29 | } 30 | 31 | .center { 32 | display: flex; 33 | justify-content: center; 34 | align-items: center; 35 | height: 100vh; 36 | } 37 | 38 | #avalonia-splash { 39 | position: relative; 40 | height: 100%; 41 | width: 100%; 42 | color: whitesmoke; 43 | background: #1b2a4e; 44 | font-family: 'Nunito', sans-serif; 45 | background-position: center; 46 | background-size: cover; 47 | background-repeat: no-repeat; 48 | justify-content: center; 49 | align-items: center; 50 | } 51 | 52 | .splash-close { 53 | animation: fadeout 0.25s linear forwards; 54 | } 55 | 56 | @keyframes fadeout { 57 | 0% { 58 | opacity:100%; 59 | } 60 | 100% { 61 | opacity:0; 62 | visibility: collapse; 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /samples/LottieDemo.Web/AppBundle/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wieslawsoltes/Lottie/b944b182b0c2d05db0b4fb1b0ff2771dcf2f22a3/samples/LottieDemo.Web/AppBundle/favicon.ico -------------------------------------------------------------------------------- /samples/LottieDemo.Web/AppBundle/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Lottie Demos 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 |
21 |
22 |

23 | Powered by 24 | Avalonia UI

25 |
26 |
27 |
28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /samples/LottieDemo.Web/AppBundle/main.js: -------------------------------------------------------------------------------- 1 | import { dotnet } from './dotnet.js' 2 | import { registerAvaloniaModule } from './avalonia.js'; 3 | 4 | const is_browser = typeof window != "undefined"; 5 | if (!is_browser) throw new Error(`Expected to be running in a browser`); 6 | 7 | const dotnetRuntime = await dotnet 8 | .withDiagnosticTracing(false) 9 | .withApplicationArgumentsFromQuery() 10 | .create(); 11 | 12 | await registerAvaloniaModule(dotnetRuntime); 13 | 14 | const config = dotnetRuntime.getConfig(); 15 | 16 | await dotnetRuntime.runMainAndExit(config.mainAssemblyName, [window.location.search]); 17 | -------------------------------------------------------------------------------- /samples/LottieDemo.Web/AppBundle/staticwebapp.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "routes": [ 3 | { 4 | "route": "/*", 5 | "headers": { 6 | "Cache-Control": "public, must-revalidate, max-age=2419200" 7 | } 8 | } 9 | ] 10 | } -------------------------------------------------------------------------------- /samples/LottieDemo.Web/LottieDemo.Web.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | net9.0 5 | browser-wasm 6 | AppBundle\main.js 7 | Exe 8 | true 9 | true 10 | False 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /samples/LottieDemo.Web/Program.cs: -------------------------------------------------------------------------------- 1 | using System.Runtime.Versioning; 2 | using System.Threading.Tasks; 3 | using Avalonia; 4 | using Avalonia.Browser; 5 | using LottieDemo; 6 | 7 | [assembly:SupportedOSPlatform("browser")] 8 | 9 | internal class Program 10 | { 11 | private static async Task Main(string[] args) 12 | => await BuildAvaloniaApp().StartBrowserAppAsync("out"); 13 | 14 | public static AppBuilder BuildAvaloniaApp() 15 | => AppBuilder.Configure(); 16 | } 17 | -------------------------------------------------------------------------------- /samples/LottieDemo.Web/runtimeconfig.template.json: -------------------------------------------------------------------------------- 1 | { 2 | "wasmHostProperties": { 3 | "perHostConfig": [ 4 | { 5 | "name": "browser", 6 | "html-path": "index.html", 7 | "Host": "browser" 8 | } 9 | ] 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /samples/LottieDemo/App.axaml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /samples/LottieDemo/App.axaml.cs: -------------------------------------------------------------------------------- 1 | using Avalonia; 2 | using Avalonia.Controls.ApplicationLifetimes; 3 | using Avalonia.Markup.Xaml; 4 | using LottieDemo.ViewModels; 5 | using LottieDemo.Views; 6 | 7 | namespace LottieDemo; 8 | 9 | public partial class App : Application 10 | { 11 | public override void Initialize() 12 | { 13 | AvaloniaXamlLoader.Load(this); 14 | } 15 | 16 | public override void OnFrameworkInitializationCompleted() 17 | { 18 | if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop) 19 | { 20 | desktop.MainWindow = new MainWindow 21 | { 22 | DataContext = new MainViewModel() 23 | }; 24 | } 25 | else if (ApplicationLifetime is ISingleViewApplicationLifetime single) 26 | { 27 | single.MainView = new MainView 28 | { 29 | DataContext = new MainViewModel() 30 | }; 31 | } 32 | 33 | base.OnFrameworkInitializationCompleted(); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /samples/LottieDemo/Assets/accept_arrows.json: -------------------------------------------------------------------------------- 1 | {"v":"4.6.3","fr":30,"ip":0,"op":40,"w":750,"h":450,"nm":"Comp 4","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"arrow Outlines 4","ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":15,"s":[100],"e":[0]},{"t":40}]},"r":{"a":0,"k":0},"p":{"a":0,"k":[598,246,0]},"a":{"a":0,"k":[144,280,0]},"s":{"a":0,"k":[-100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[25.138,-227.081],[-144,-0.159],[25.138,227.082],[144,227.082],[-25.138,-0.159],[144,-227.081]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[144,259.931],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":15,"op":155,"st":5,"bm":0,"sr":1},{"ddd":0,"ind":2,"ty":4,"nm":"arrow Outlines 5","ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":10,"s":[100],"e":[0]},{"t":35}]},"r":{"a":0,"k":0},"p":{"a":0,"k":[448,246,0]},"a":{"a":0,"k":[144,280,0]},"s":{"a":0,"k":[-100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[25.138,-227.081],[-144,-0.159],[25.138,227.082],[144,227.082],[-25.138,-0.159],[144,-227.081]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[144,259.931],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":10,"op":155,"st":5,"bm":0,"sr":1},{"ddd":0,"ind":3,"ty":4,"nm":"arrow Outlines 3","ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":5,"s":[100],"e":[0]},{"t":30}]},"r":{"a":0,"k":0},"p":{"a":0,"k":[296,248,0]},"a":{"a":0,"k":[144,280,0]},"s":{"a":0,"k":[-100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[25.138,-227.081],[-144,-0.159],[25.138,227.082],[144,227.082],[-25.138,-0.159],[144,-227.081]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[144,259.931],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":5,"op":155,"st":5,"bm":0,"sr":1},{"ddd":0,"ind":4,"ty":4,"nm":"arrow Outlines","ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[100],"e":[0]},{"t":25}]},"r":{"a":0,"k":0},"p":{"a":0,"k":[146,248,0]},"a":{"a":0,"k":[144,280,0]},"s":{"a":0,"k":[-100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[25.138,-227.081],[-144,-0.159],[25.138,227.082],[144,227.082],[-25.138,-0.159],[144,-227.081]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[144,259.931],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":151,"st":0,"bm":0,"sr":1}]} -------------------------------------------------------------------------------- /samples/LottieDemo/Assets/android_fingerprint.json: -------------------------------------------------------------------------------- 1 | {"v":"4.6.3","fr":25,"ip":0,"op":39,"w":650,"h":230,"nm":"Fingerprint","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 3","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[325,115,0]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[20.666,6.495],[-24.5,6],[-12.496,-7.37],[4.5,18.5],[32.5,-6.5],[-19,-58]],"o":[[-52.5,-16.5],[28.289,-6.928],[19.5,11.5],[-7.796,-32.05],[-27.263,5.453],[19.074,58.225]],"v":[[26,78],[-6.5,1.5],[30,38.5],[60.5,9.5],[-15.5,-36],[-55,53.5]],"c":false}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"st","c":{"a":0,"k":[0.2627451,0.9921569,0.4666667,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":9},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0_1_0p333_0"],"t":1,"s":[0],"e":[100]},{"t":28}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim"}],"ip":0,"op":39,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 2","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[325,115,0]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[24,-3.5],[3,40.5]],"o":[[-24,3.5],[-3,-40.5]],"v":[[51.5,58.5],[-1,17.5]],"c":false}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"st","c":{"a":0,"k":[0.2627451,0.9921569,0.4666667,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":9},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[102.868,99.902],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 2","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[43.527,56.362],[27.5,-42.5]],"o":[[-39,-50.5],[-27.5,42.5]],"v":[[68.5,-22.5],[-69,-20.5]],"c":false}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"st","c":{"a":0,"k":[0.2627451,0.9921569,0.4666667,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":9},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":2,"mn":"ADBE Vector Group"},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0_1_0p333_0"],"t":5,"s":[0],"e":[100]},{"t":19}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim"}],"ip":0,"op":39,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 1","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[325,115,0]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[48.5,-7.5],[-33,-25]],"o":[[0,0],[-44.485,6.879],[35.509,26.901]],"v":[[41,24],[-8.5,-17],[-16,76.5]],"c":false}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"st","c":{"a":0,"k":[0.2627451,0.9921569,0.4666667,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":9},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 2","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[58,-30]],"o":[[0,0],[-58,30]],"v":[[49.5,-62.5],[-50,-62.5]],"c":false}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"st","c":{"a":0,"k":[0.2627451,0.9921569,0.4666667,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":9},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":2,"mn":"ADBE Vector Group"},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0_1_0p333_0"],"t":0,"s":[0],"e":[100]},{"t":19}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim"}],"ip":0,"op":39,"st":0,"bm":0,"sr":1}]} -------------------------------------------------------------------------------- /samples/LottieDemo/Assets/avalonia-logo.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wieslawsoltes/Lottie/b944b182b0c2d05db0b4fb1b0ff2771dcf2f22a3/samples/LottieDemo/Assets/avalonia-logo.ico -------------------------------------------------------------------------------- /samples/LottieDemo/Assets/bell.json: -------------------------------------------------------------------------------- 1 | {"assets":[{"id":"comp_0","layers":[{"ddd":0,"ind":0,"ty":1,"nm":"White Solid 1","td":1,"ks":{"o":{"k":100},"r":{"k":22},"p":{"k":[288.003,547.449,0]},"a":{"k":[25,25,0]},"s":{"k":[412,168,100]}},"ao":0,"sw":50,"sh":50,"sc":"#ffffff","ip":0,"op":50,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 1","tt":2,"ks":{"o":{"k":100},"r":{"k":22},"p":{"k":[273.145,580.253,0]},"a":{"k":[-0.776,155.616,0]},"s":{"k":[110.945,113.273,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"k":[59.648,59.648]},"p":{"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","fillEnabled":true,"c":{"k":[0,0,0,1]},"o":{"k":100},"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"k":[-1,155.5],"ix":2},"a":{"k":[0,0],"ix":1},"s":{"k":[100,100],"ix":3},"r":{"k":0,"ix":6},"o":{"k":100,"ix":7},"sk":{"k":0,"ix":4},"sa":{"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"mn":"ADBE Vector Group"}],"ip":0,"op":50,"st":0,"bm":0,"sr":1}]}],"layers":[{"ddd":0,"ind":0,"ty":3,"nm":"Null 1","ks":{"o":{"k":0},"r":{"k":[{"i":{"x":[0.833],"y":[1.093]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_1p093_0p167_0p167"],"t":0,"s":[0],"e":[-22]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0.037]},"n":["0p833_1_0p167_0p037"],"t":6.931,"s":[-22],"e":[22]},{"i":{"x":[0.833],"y":[0.966]},"o":{"x":[0.167],"y":[0]},"n":["0p833_0p966_0p167_0"],"t":12.435,"s":[22],"e":[-22]},{"i":{"x":[0.833],"y":[0.857]},"o":{"x":[0.167],"y":[-0.098]},"n":["0p833_0p857_0p167_-0p098"],"t":18,"s":[-22],"e":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0.295]},"n":["0p833_1_0p167_0p295"],"t":26,"s":[0],"e":[4]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p667_1_0p167_0"],"t":29,"s":[4],"e":[0]},{"t":33}]},"p":{"k":[221.5,77,0]},"a":{"k":[0,0,0]},"s":{"k":[344,344,100]}},"ao":0,"ip":0,"op":50,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":1,"ty":1,"nm":"Black Solid 1","parent":0,"ks":{"o":{"k":100},"r":{"k":0},"p":{"k":[0,30.959,0]},"a":{"k":[221.5,183.5,0]},"s":{"k":[29.07,29.07,100]}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"k":{"i":[[3.376,4.804],[0,15.358],[0,0],[40.857,4.809],[0,6.956],[9.556,0],[0,-9.556],[-4.437,-3.072],[-0.007,-0.031],[0,-42.092],[0,0],[8.971,-12.559],[-5.461,0],[0,0]],"o":[[-8.874,-12.628],[0,0],[0,-41.969],[4.427,-3.689],[0,-9.556],[-9.556,0],[0,5.802],[0,0],[-40.638,4.737],[0,0],[0,15.358],[-3.413,4.778],[0,0],[5.461,0]],"v":[[318.087,264.087],[303.411,220.401],[303.411,172.619],[231.019,91.367],[238.565,77.056],[221.5,59.991],[204.435,77.056],[211.944,91.049],[211.971,91.152],[139.589,172.619],[139.589,220.401],[124.913,264.087],[130.374,275.009],[312.626,275.009]],"c":true}},"o":{"k":100},"x":{"k":0},"nm":"Mask 1"}],"ef":[{"ty":21,"nm":"Fill","mn":"ADBE Fill","ix":1,"ef":[{"ty":3,"nm":"Fill Mask","mn":"ADBE Fill-0001","ix":1,"v":{"k":0}},{"ty":7,"nm":"All Masks","mn":"ADBE Fill-0007","ix":2,"v":{"k":0}},{"ty":2,"nm":"Color","mn":"ADBE Fill-0002","ix":3,"v":{"k":[1,1,1,1]}},{"ty":7,"nm":"Invert","mn":"ADBE Fill-0006","ix":4,"v":{"k":0}},{"ty":0,"nm":"Horizontal Feather","mn":"ADBE Fill-0003","ix":5,"v":{"k":0}},{"ty":0,"nm":"Vertical Feather","mn":"ADBE Fill-0004","ix":6,"v":{"k":0}},{"ty":0,"nm":"Opacity","mn":"ADBE Fill-0005","ix":7,"v":{"k":1}}]}],"sw":443,"sh":367,"sc":"#000000","ip":0,"op":50,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":2,"ty":0,"nm":"Pre-comp 1","parent":0,"refId":"comp_0","ks":{"o":{"k":100},"r":{"k":-22},"p":{"k":[{"i":{"x":0.833,"y":0.814},"o":{"x":0.167,"y":0.167},"n":"0p833_0p814_0p167_0p167","t":2,"s":[4.737,11.725,0],"e":[19.737,11.725,0],"to":[2.5,0,0],"ti":[2.83333325386047,0,0]},{"i":{"x":0.833,"y":0.844},"o":{"x":0.167,"y":0.157},"n":"0p833_0p844_0p167_0p157","t":4.572,"s":[19.737,11.725,0],"e":[-12.263,11.725,0],"to":[-2.83333325386047,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.88},"o":{"x":0.167,"y":0.177},"n":"0p833_0p88_0p167_0p177","t":9,"s":[-12.263,11.725,0],"e":[19.737,11.725,0],"to":[0,0,0],"ti":[-2.66666674613953,0,0]},{"i":{"x":0.833,"y":0.886},"o":{"x":0.167,"y":0.22},"n":"0p833_0p886_0p167_0p22","t":14.008,"s":[19.737,11.725,0],"e":[-8.129,11.725,0],"to":[0.7367005944252,0,0],"ti":[4.95352220535278,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.284},"n":"0p833_0p833_0p167_0p284","t":22,"s":[-8.129,11.725,0],"e":[3.737,11.725,0],"to":[-2.79587697982788,0,0],"ti":[0.0821717903018,0,0]},{"t":31}]},"a":{"k":[350,437.5,0]},"s":{"k":[29.07,29.07,100]}},"ao":0,"ef":[{"ty":21,"nm":"Fill","mn":"ADBE Fill","ix":1,"ef":[{"ty":3,"nm":"Fill Mask","mn":"ADBE Fill-0001","ix":1,"v":{"k":0}},{"ty":7,"nm":"All Masks","mn":"ADBE Fill-0007","ix":2,"v":{"k":0}},{"ty":2,"nm":"Color","mn":"ADBE Fill-0002","ix":3,"v":{"k":[1,1,1,1]}},{"ty":7,"nm":"Invert","mn":"ADBE Fill-0006","ix":4,"v":{"k":0}},{"ty":0,"nm":"Horizontal Feather","mn":"ADBE Fill-0003","ix":5,"v":{"k":0}},{"ty":0,"nm":"Vertical Feather","mn":"ADBE Fill-0004","ix":6,"v":{"k":0}},{"ty":0,"nm":"Opacity","mn":"ADBE Fill-0005","ix":7,"v":{"k":1}}]}],"w":700,"h":875,"ip":0,"op":50,"st":0,"bm":0,"sr":1}],"v":"4.5.0","ddd":0,"ip":0,"op":42,"fr":25,"w":443,"h":367} -------------------------------------------------------------------------------- /samples/LottieDemo/Assets/cash.json: -------------------------------------------------------------------------------- 1 | {"v":"5.1.6","fr":30,"ip":0,"op":31,"w":304,"h":188,"nm":"2_credit","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0,"y":0.885},"o":{"x":0.333,"y":0},"n":"0_0p885_0p333_0","t":0,"s":[178,115,0],"e":[152,90,0],"to":[-4.33333349227905,-4.16666650772095,0],"ti":[4.33333349227905,4.16666650772095,0]},{"t":30}],"ix":2},"a":{"a":0,"k":[79,46,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[5.644,5.25],[4.241,0.966],[7.114,0.966]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-1.357,-1.234],[-0.056,-5.087],[1.206,-1.234]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-5.861,5.231],[-7.265,0.966],[-4.421,0.966]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ind":3,"ty":"sh","ix":4,"ks":{"a":0,"k":{"i":[[0.607,0],[0,0],[0,0],[0.575,0.197],[0.197,-0.574],[0,0],[0,0],[0,0],[0.474,0.003],[0,0],[0.151,-0.447],[0,0],[0,0],[0,0],[0.578,-0.191],[-0.19,-0.577],[0,0],[0,0],[0,-0.607],[-0.608,0],[0,0],[0,0],[-0.473,-0.002],[0,0],[-0.15,0.447],[0,0],[0,0],[0,0],[-0.473,-0.003],[0,0],[-0.153,0.445],[0,0],[0,0],[0,0.608]],"o":[[0,0],[0,0],[0.197,-0.575],[-0.575,-0.197],[0,0],[0,0],[0,0],[-0.147,-0.45],[0,0],[-0.472,0],[0,0],[0,0],[0,0],[-0.19,-0.577],[-0.577,0.19],[0,0],[0,0],[-0.608,0],[0,0.608],[0,0],[0,0],[0.147,0.449],[0,0],[0.472,0],[0,0],[0,0],[0,0],[0.147,0.449],[0,0],[0.469,0],[0,0],[0,0],[0.607,0],[0,-0.607]],"v":[[12.644,-1.234],[10.195,-1.234],[12.591,-8.216],[11.907,-9.613],[10.51,-8.93],[7.869,-1.234],[3.521,-1.234],[1.005,-8.915],[-0.035,-9.673],[-0.04,-9.673],[-1.082,-8.925],[-3.679,-1.234],[-7.988,-1.234],[-10.516,-8.917],[-11.905,-9.618],[-12.606,-8.229],[-10.304,-1.234],[-12.644,-1.234],[-13.744,-0.134],[-12.644,0.966],[-9.581,0.966],[-6.919,9.054],[-5.879,9.81],[-5.875,9.81],[-4.833,9.062],[-2.1,0.966],[1.926,0.966],[4.574,9.052],[5.612,9.81],[5.62,9.81],[6.66,9.067],[9.44,0.966],[12.644,0.966],[13.744,-0.134]],"c":true},"ix":2},"nm":"Path 4","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[65.005,32.573],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"w","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-12.15,0],[0,-12.15],[12.15,0],[0,12.15]],"o":[[12.15,0],[0,12.15],[-12.15,0],[0,-12.15]],"v":[[0,-22],[22,0],[0,22],[-22,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":10,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[65,32],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"oval","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,-1.657],[0,0],[-1.656,0],[0,0],[0,1.657],[0,0],[1.658,0]],"o":[[-1.656,0],[0,0],[0,1.657],[0,0],[1.658,0],[0,0],[0,-1.657],[0,0]],"v":[[-129,-66.001],[-132,-63.001],[-132,-3.001],[-129,0],[-3,0],[0,-3.001],[0,-63.001],[-3,-66.001]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gf","o":{"a":0,"k":100,"ix":10},"r":1,"g":{"p":3,"k":{"a":0,"k":[0,0.486,0.302,1,0.5,0.551,0.39,1,1,0.616,0.478,1],"ix":9}},"s":{"a":0,"k":[-127.498,-61.229],"ix":5},"e":{"a":0,"k":[-2.012,-2.539],"ix":6},"t":1,"nm":"Gradient Fill 1","mn":"ADBE Vector Graphic - G-Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[131.23,67.124],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":2,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":35,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.035,"y":0.889},"o":{"x":0.333,"y":0},"n":"0p035_0p889_0p333_0","t":0,"s":[164,104,0],"e":[152,90,0],"to":[-2,-2.33333325386047,0],"ti":[2,2.33333325386047,0]},{"t":30}],"ix":2},"a":{"a":0,"k":[79,46,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,-1.657],[0,0],[-1.657,0],[0,0],[0,1.656],[0,0],[1.657,0]],"o":[[-1.657,0],[0,0],[0,1.656],[0,0],[1.657,0],[0,0],[0,-1.657],[0,0]],"v":[[-140.965,-79.578],[-143.965,-76.578],[-143.965,-16.577],[-140.965,-13.578],[-14.965,-13.578],[-11.965,-16.577],[-11.965,-76.578],[-14.965,-79.578]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gf","o":{"a":0,"k":100,"ix":10},"r":1,"g":{"p":3,"k":{"a":0,"k":[0,0.925,0.949,0.98,0.5,0.888,0.922,0.965,1,0.851,0.894,0.949],"ix":9}},"s":{"a":0,"k":[-140.467,-76.619],"ix":5},"e":{"a":0,"k":[-14.162,-15.09],"ix":6},"t":1,"nm":"Gradient Fill 1","mn":"ADBE Vector Graphic - G-Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[157.59,92.594],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":35,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"3","sr":1,"ks":{"o":{"a":0,"k":45,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[152,90,0],"e":[152,90,0],"to":[0,0,0],"ti":[0,0,0]},{"t":30}],"ix":2},"a":{"a":0,"k":[79,46,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.657,0],[0,0],[0,-1.657],[0,0],[1.657,0],[0,0],[0,1.656],[0,0]],"o":[[0,0],[1.657,0],[0,0],[0,1.656],[0,0],[-1.657,0],[0,0],[0,-1.657]],"v":[[-155.131,-92.106],[-29.131,-92.106],[-26.131,-89.106],[-26.131,-29.105],[-29.131,-26.105],[-155.131,-26.105],[-158.131,-29.105],[-158.131,-89.106]],"c":true},"ix":2},"nm":"Path 5","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gf","o":{"a":0,"k":100,"ix":10},"r":1,"g":{"p":3,"k":{"a":0,"k":[0,0.851,0.894,0.949,0.5,0.888,0.922,0.965,1,0.925,0.949,0.98],"ix":9}},"s":{"a":0,"k":[-27.91,-28.125],"ix":5},"e":{"a":0,"k":[-155.289,-90.943],"ix":6},"t":1,"nm":"Gradient Fill 1","mn":"ADBE Vector Graphic - G-Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[183.719,118.715],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":35,"st":0,"bm":0}],"markers":[]} -------------------------------------------------------------------------------- /samples/LottieDemo/Assets/clock.json: -------------------------------------------------------------------------------- 1 | {"v":"4.6.0","fr":60,"ip":0,"op":180,"w":160,"h":160,"nm":"rounded clock","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"small pointer Outlines","ks":{"o":{"a":0,"k":100},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":58.5,"s":[-6],"e":[383.579]},{"i":{"x":[0.662],"y":[0.88]},"o":{"x":[0.296],"y":[0]},"n":["0p662_0p88_0p296_0"],"t":145.5,"s":[383.579],"e":[332.089]},{"i":{"x":[0.813],"y":[1.121]},"o":{"x":[0.426],"y":[-0.326]},"n":["0p813_1p121_0p426_-0p326"],"t":163.5,"s":[332.089],"e":[354]},{"t":180}]},"p":{"a":0,"k":[80,80,0]},"a":{"a":0,"k":[80,80,0]},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,0.667]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0.333]},"n":["0p667_1_0p333_0","0p667_1_0p333_0","0p667_0p667_0p333_0p333"],"t":0,"s":[100,100,100],"e":[80,80,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,0.667]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0.333]},"n":["0p667_1_0p333_0","0p667_1_0p333_0","0p667_0p667_0p333_0p333"],"t":45,"s":[80,80,100],"e":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,0.667]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0.333]},"n":["0p667_1_0p333_0","0p667_1_0p333_0","0p667_0p667_0p333_0p333"],"t":90,"s":[100,100,100],"e":[80,80,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,0.667]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0.333]},"n":["0p667_1_0p333_0","0p667_1_0p333_0","0p667_0p667_0p333_0p333"],"t":135,"s":[80,80,100],"e":[100,100,100]},{"t":180}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,-2.209],[2.209,0],[0,0],[0,2.209],[-2.209,0]],"o":[[2.209,0],[0,2.209],[0,0],[-2.209,0],[0,-2.209],[0,0]],"v":[[23.333,-4],[27.333,0],[23.333,4],[-23.334,4],[-27.334,0],[-23.334,-4]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[0.714,0.157,1,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[103.333,80],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"mn":"ADBE Vector Group"}],"ip":0,"op":180,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":2,"ty":4,"nm":"big pointer Outlines","ks":{"o":{"a":0,"k":100},"r":{"a":1,"k":[{"i":{"x":[0.825],"y":[0.923]},"o":{"x":[0.166],"y":[0.063]},"n":["0p825_0p923_0p166_0p063"],"t":0,"s":[0],"e":[360]},{"t":180}]},"p":{"a":0,"k":[80,80,0]},"a":{"a":0,"k":[80,80,0]},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,0.667]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0.333]},"n":["0p667_1_0p333_0","0p667_1_0p333_0","0p667_0p667_0p333_0p333"],"t":0,"s":[100,100,100],"e":[80,80,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,0.667]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0.333]},"n":["0p667_1_0p333_0","0p667_1_0p333_0","0p667_0p667_0p333_0p333"],"t":45,"s":[80,80,100],"e":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,0.667]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0.333]},"n":["0p667_1_0p333_0","0p667_1_0p333_0","0p667_0p667_0p333_0p333"],"t":90,"s":[100,100,100],"e":[80,80,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,0.667]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0.333]},"n":["0p667_1_0p333_0","0p667_1_0p333_0","0p667_0p667_0p333_0p333"],"t":135,"s":[80,80,100],"e":[100,100,100]},{"t":180}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-2.209,0],[0,-2.209],[0,0],[2.209,0],[0,2.209]],"o":[[0,-2.209],[2.209,0],[0,0],[0,2.209],[-2.209,0],[0,0]],"v":[[-4,-28.333],[0,-32.333],[4,-28.333],[4,28.333],[0,32.333],[-4,28.333]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[0.714,0.157,1,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[80,51.167],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"mn":"ADBE Vector Group"}],"ip":0,"op":180,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":3,"ty":4,"nm":"rpound clock Outlines","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[80,80,0]},"a":{"a":0,"k":[80,80,0]},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,0.667]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0.333]},"n":["0p667_1_0p333_0","0p667_1_0p333_0","0p667_0p667_0p333_0p333"],"t":0,"s":[100,100,100],"e":[80,80,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,0.667]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0.333]},"n":["0p667_1_0p333_0","0p667_1_0p333_0","0p667_0p667_0p333_0p333"],"t":45,"s":[80,80,100],"e":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,0.667]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0.333]},"n":["0p667_1_0p333_0","0p667_1_0p333_0","0p667_0p667_0p333_0p333"],"t":90,"s":[100,100,100],"e":[80,80,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,0.667]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0.333]},"n":["0p667_1_0p333_0","0p667_1_0p333_0","0p667_0p667_0p333_0p333"],"t":135,"s":[80,80,100],"e":[100,100,100]},{"t":180}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-38.66],[38.66,0],[0,38.66],[-38.66,0]],"o":[[0,38.66],[-38.66,0],[0,-38.66],[38.66,0]],"v":[[70,0],[0,70],[-70,0],[0,-70]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[1,0.8590001,0.161,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[80,80],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"mn":"ADBE Vector Group"}],"ip":0,"op":180,"st":0,"bm":0,"sr":1}]} -------------------------------------------------------------------------------- /samples/LottieDemo/Assets/finish,done.json: -------------------------------------------------------------------------------- 1 | {"v":"4.6.0","fr":25,"ip":0,"op":21,"w":800,"h":600,"nm":"finnish","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 4","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[400,300,0]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"ef":[{"ty":25,"nm":"Drop Shadow","mn":"ADBE Drop Shadow","ix":1,"en":1,"ef":[{"ty":2,"nm":"Shadow Color","mn":"ADBE Drop Shadow-0001","ix":1,"v":{"a":0,"k":[0,0,0,1]}},{"ty":0,"nm":"Opacity","mn":"ADBE Drop Shadow-0002","ix":2,"v":{"a":0,"k":69.5}},{"ty":0,"nm":"Direction","mn":"ADBE Drop Shadow-0003","ix":3,"v":{"a":0,"k":-247}},{"ty":0,"nm":"Distance","mn":"ADBE Drop Shadow-0004","ix":4,"v":{"a":0,"k":4}},{"ty":0,"nm":"Softness","mn":"ADBE Drop Shadow-0005","ix":5,"v":{"a":0,"k":20}},{"ty":7,"nm":"Shadow Only","mn":"ADBE Drop Shadow-0006","ix":6,"v":{"a":0,"k":0}}]}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-1,0],[0,-1],[0,0]],"o":[[0,0],[1,0],[0,1],[0,0]],"v":[[-118,-12],[-77,-12],[-12,48],[155,-121]],"c":false}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":20},"lc":2,"lj":2,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[4.457,12.406],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":2,"mn":"ADBE Vector Group"},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.17],"y":[1]},"o":{"x":[0.283],"y":[0]},"n":["0p17_1_0p283_0"],"t":11,"s":[0],"e":[99.574]},{"t":18}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim"}],"ip":5,"op":255,"st":5,"bm":0,"sr":1},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 3","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[400,300,0]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-1,0],[0,-1],[0,0]],"o":[[0,0],[1,0],[0,1],[0,0]],"v":[[-118,-12],[-77,-12],[-12,48],[155,-121]],"c":false}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"st","c":{"a":0,"k":[0.9060738,0,0.9610141,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":19},"lc":2,"lj":2,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[4.457,12.406],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":2,"mn":"ADBE Vector Group"},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.17],"y":[1]},"o":{"x":[0.283],"y":[0]},"n":["0p17_1_0p283_0"],"t":10,"s":[0],"e":[99.574]},{"t":17}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim"}],"ip":4,"op":254,"st":4,"bm":0,"sr":1},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 2","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[400,300,0]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-1,0],[0,-1],[0,0]],"o":[[0,0],[1,0],[0,1],[0,0]],"v":[[-118,-12],[-77,-12],[-12,48],[155,-121]],"c":false}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"st","c":{"a":0,"k":[0.4036764,0,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":18},"lc":2,"lj":2,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[4.457,12.406],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":2,"mn":"ADBE Vector Group"},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.17],"y":[1]},"o":{"x":[0.283],"y":[0]},"n":["0p17_1_0p283_0"],"t":8,"s":[0],"e":[99.574]},{"t":15}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim"}],"ip":2,"op":252,"st":2,"bm":0,"sr":1},{"ddd":0,"ind":4,"ty":4,"nm":"Shape Layer 1","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[400,300,0]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-1,0],[0,-1],[0,0]],"o":[[0,0],[1,0],[0,1],[0,0]],"v":[[-118,-12],[-77,-12],[-12,48],[155,-121]],"c":false}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"st","c":{"a":0,"k":[0,0.4779414,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":17},"lc":2,"lj":2,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[4.457,12.406],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":2,"mn":"ADBE Vector Group"},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.17],"y":[1]},"o":{"x":[0.283],"y":[0]},"n":["0p17_1_0p283_0"],"t":6,"s":[0],"e":[99.574]},{"t":13}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim"}],"ip":0,"op":250,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":5,"ty":4,"nm":"line 2","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[403.312,300.844,0]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[289.828,289.828]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"st","c":{"a":0,"k":[1,0.6716912,0,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":15},"lc":2,"lj":2,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[-3.312,-0.844],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"mn":"ADBE Vector Group"},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.255],"y":[0]},"n":["0_1_0p255_0"],"t":3,"s":[0],"e":[100]},{"t":10}],"ix":2},"o":{"a":1,"k":[{"i":{"x":[0.152],"y":[0.999]},"o":{"x":[0.333],"y":[0]},"n":["0p152_0p999_0p333_0"],"t":3,"s":[0],"e":[359]},{"t":10}],"ix":3},"m":2,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim"}],"ip":0,"op":250,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":6,"ty":4,"nm":"circle","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[396.334,303.158,0]},"a":{"a":0,"k":[0,0,0]},"s":{"a":1,"k":[{"i":{"x":[0,0,0],"y":[1,1,0]},"o":{"x":[0.53,0.53,0.53],"y":[0,0,0.53]},"n":["0_1_0p53_0","0_1_0p53_0","0_0_0p53_0p53"],"t":2,"s":[0,0,100],"e":[132.229,132.229,100]},{"t":8}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[215.965,215.965]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"st","c":{"a":0,"k":[0.0034418,0.3358456,0.3276577,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":0},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"fl","c":{"a":0,"k":[1,0.752022,0,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[3.666,-3.158],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"mn":"ADBE Vector Group"}],"ip":0,"op":250,"st":0,"bm":0,"sr":1}]} -------------------------------------------------------------------------------- /samples/LottieDemo/Assets/flow.json: -------------------------------------------------------------------------------- 1 | {"v":"4.10.0","fr":25,"ip":0,"op":77,"w":200,"h":200,"nm":"Comp 1","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 5","sr":1,"ks":{"o":{"a":0,"k":75,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[99.5,72.5,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-32.305,-35.952],[-14.667,21],[-22.933,-23.154],[-12,22.5]],"o":[[0,0],[20.667,23],[18.087,-25.897],[17.333,17.5],[12,-22.5]],"v":[[-118,41],[-64.667,27],[-1.333,32],[66,32.5],[121.333,27.5]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":35,"s":[0],"e":[100]},{"t":75}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":7,"s":[0],"e":[100]},{"t":75}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.980392156863,0.950313253964,0.615148028205,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":7,"op":77,"st":7,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[99.5,76,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-32.305,-35.952],[-14.667,21],[-22.933,-23.154],[-12,22.5]],"o":[[0,0],[20.667,23],[18.087,-25.897],[17.333,17.5],[12,-22.5]],"v":[[-118,41],[-64.667,27],[-1.333,32],[66,32.5],[121.333,27.5]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":27,"s":[0],"e":[100]},{"t":67}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":-1,"s":[0],"e":[100]},{"t":67}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.992156862745,0.953386134727,0.521368707395,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":77,"st":-1,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[99.5,79.5,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-32.305,-35.952],[-14.667,21],[-22.933,-23.154],[-12,22.5]],"o":[[0,0],[20.667,23],[18.087,-25.897],[17.333,17.5],[12,-22.5]],"v":[[-118,41],[-64.667,27],[-1.333,32],[66,32.5],[121.333,27.5]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":30,"s":[0],"e":[100]},{"t":70}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":2,"s":[0],"e":[100]},{"t":70}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.917647118662,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":2,"op":77,"st":2,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Shape Layer 4","sr":1,"ks":{"o":{"a":0,"k":75,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[99.5,83,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-32.305,-35.952],[-14.667,21],[-22.933,-23.154],[-12,22.5]],"o":[[0,0],[20.667,23],[18.087,-25.897],[17.333,17.5],[12,-22.5]],"v":[[-118,41],[-64.667,27],[-1.333,32],[66,32.5],[121.333,27.5]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":33,"s":[0],"e":[100]},{"t":73}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":5,"s":[0],"e":[100]},{"t":73}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.988235294118,0.969086112228,0.75570936016,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":5,"op":77,"st":5,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Shape Layer 3","sr":1,"ks":{"o":{"a":0,"k":50,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[99.5,86,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-32.305,-35.952],[-14.667,21],[-22.933,-23.154],[-12,22.5]],"o":[[0,0],[20.667,23],[18.087,-25.897],[17.333,17.5],[12,-22.5]],"v":[[-118,41],[-64.667,27],[-1.333,32],[66,32.5],[121.333,27.5]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":36,"s":[0],"e":[100]},{"t":76}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":8,"s":[0],"e":[100]},{"t":76}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.976470588235,0.952819106158,0.689273370481,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":8,"op":77,"st":8,"bm":0}]} -------------------------------------------------------------------------------- /samples/LottieDemo/Assets/gradient_animated_background.json: -------------------------------------------------------------------------------- 1 | {"v":"4.6.10","fr":15,"ip":0,"op":155,"w":1080,"h":1920,"nm":"background","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 1","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[540,960,0]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[1160,880]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":0},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect"},{"ty":"st","c":{"a":0,"k":[0.9960784,0.7843137,0.145098,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"gf","o":{"a":0,"k":100},"r":1,"g":{"p":3,"k":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[0,0.511,0.89,0.283,0.5,0.334,0.873,0.583,1,0.156,0.857,0.882],"e":[0,0.726,0.283,0.89,0.5,0.441,0.356,0.886,1,0.156,0.429,0.882]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":31,"s":[0,0.726,0.283,0.89,0.5,0.441,0.356,0.886,1,0.156,0.429,0.882],"e":[0,0.89,0.283,0.283,0.5,0.886,0.553,0.219,1,0.882,0.823,0.156]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":61,"s":[0,0.89,0.283,0.283,0.5,0.886,0.553,0.219,1,0.882,0.823,0.156],"e":[0,0,0.312,0.737,0.5,0.078,0.597,0.754,1,0.156,0.882,0.771]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":91,"s":[0,0,0.312,0.737,0.5,0.078,0.597,0.754,1,0.156,0.882,0.771],"e":[0,0.51,0.89,0.282,0.5,0.333,0.873,0.582,1,0.157,0.855,0.882]},{"t":120}]}},"s":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[-430.769,-404.573],"e":[23.726,-364.48],"to":[75.7491683959961,6.68213844299316],"ti":[-123.915840148926,-8.51547145843506]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":31,"s":[23.726,-364.48],"e":[312.726,-353.48],"to":[123.915840148926,8.51547145843506],"ti":[-1.00208830833435,-1.83333337306976]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":61,"s":[312.726,-353.48],"e":[29.739,-353.48],"to":[1.00208830833435,1.83333337306976],"ti":[120.055290222168,0.60746711492538]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":91,"s":[29.739,-353.48],"e":[-407.606,-357.125],"to":[-120.055290222168,-0.60746711492538],"ti":[72.8907089233398,0.60746711492538]},{"t":120}]},"e":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[374.412,342.611],"e":[22.822,357.191],"to":[-58.5984153747559,2.42986845970154],"ti":[132.520950317383,-7.89707231521606]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":31,"s":[22.822,357.191],"e":[-420.714,389.994],"to":[-132.520950317383,7.89707231521606],"ti":[-4.68509674072266,-7.89707231521606]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":61,"s":[-420.714,389.994],"e":[50.932,404.573],"to":[4.68509674072266,7.89707231521606],"ti":[-132.918350219727,4.25226974487305]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":91,"s":[50.932,404.573],"e":[376.797,364.48],"to":[132.918350219727,-4.25226974487305],"ti":[-54.3107261657715,6.68213844299316]},{"t":120}]},"t":1,"nm":"Gradient Fill 1","mn":"ADBE Vector Graphic - G-Fill"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[93.29,219.491],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":155,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":2,"ty":1,"nm":"Deep Red Solid 1","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[540,960,0]},"a":{"a":0,"k":[540,960,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"sw":1080,"sh":1920,"sc":"#be2a2a","ip":0,"op":155,"st":0,"bm":0,"sr":1}]} -------------------------------------------------------------------------------- /samples/LottieDemo/Assets/loading disc.json: -------------------------------------------------------------------------------- 1 | {"v":"4.7.0","fr":30,"ip":2,"op":122,"w":1290,"h":720,"nm":"Comp 1","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":3,"nm":"counter","ks":{"o":{"a":0,"k":0},"r":{"a":0,"k":0},"p":{"a":0,"k":[645,360,0]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"ef":[{"ty":5,"nm":"Slider Control","mn":"ADBE Slider Control","ix":1,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0],"e":[100]},{"t":119}]}}]}],"ip":0,"op":122,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 2","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[645,360,0]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[403.664,399.148]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"gs","o":{"a":0,"k":100},"w":{"a":0,"k":54},"g":{"p":3,"k":{"a":0,"k":[0,0.032,0.953,0.936,0.426,0.386,0.487,0.93,1,0.741,0.02,0.923]}},"s":{"a":0,"k":[-78,-225]},"e":{"a":0,"k":[328,0]},"t":1,"lc":1,"lj":1,"ml":4,"d":[{"n":"d","nm":"dash","v":{"a":0,"k":10}},{"n":"o","nm":"offset","v":{"a":0,"k":0}}],"nm":"Gradient Stroke 1","mn":"ADBE Vector Graphic - G-Stroke"},{"ty":"tr","p":{"a":0,"k":[-1.34,-10.637],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[90,90],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 2","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[403.664,399.148]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"gs","o":{"a":0,"k":100},"w":{"a":0,"k":54},"g":{"p":3,"k":{"a":0,"k":[0,0.032,0.953,0.936,0.426,0.386,0.487,0.93,1,0.741,0.02,0.923]}},"s":{"a":0,"k":[-78,-225]},"e":{"a":0,"k":[328,0]},"t":1,"lc":1,"lj":1,"ml":4,"nm":"Gradient Stroke 1","mn":"ADBE Vector Graphic - G-Stroke"},{"ty":"tr","p":{"a":0,"k":[-1.34,-10.637],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[120,120],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":2,"mn":"ADBE Vector Group"},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":0,"k":100,"x":"var $bm_rt;\n$bm_rt = thisComp.layer('counter').effect('Slider Control')('Slider');","ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim"}],"ip":0,"op":122,"st":0,"bm":0,"sr":1}]} -------------------------------------------------------------------------------- /samples/LottieDemo/Assets/loading...json: -------------------------------------------------------------------------------- 1 | {"assets":[],"layers":[{"ddd":0,"ind":0,"ty":4,"nm":"Shape Layer 1","ks":{"o":{"k":100},"r":{"k":0},"p":{"k":[300,300,0]},"a":{"k":[0,0,0]},"s":{"k":[244,244,100]}},"ao":0,"shapes":[{"d":1,"ty":"el","s":{"k":[100,100]},"p":{"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"tm","s":{"k":[{"i":{"x":[0.439],"y":[1.016]},"o":{"x":[0.561],"y":[0.015]},"n":["0p439_1p016_0p561_0p015"],"t":5,"s":[100],"e":[0]},{"t":33.0000013441176}],"ix":1},"e":{"k":[{"i":{"x":[0.439],"y":[1.017]},"o":{"x":[0.561],"y":[0.016]},"n":["0p439_1p017_0p561_0p016"],"t":0,"s":[100],"e":[0]},{"t":30.0000012219251}],"ix":2},"o":{"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim"},{"ty":"st","fillEnabled":true,"c":{"k":[1,1,1,1]},"o":{"k":100},"w":{"k":16},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"}],"ip":0,"op":900.000036657751,"st":0,"bm":0,"sr":1}],"v":"4.5.3","ddd":0,"ip":1.00000004073083,"op":33.0000013441175,"fr":29.9700012207031,"w":600,"h":600} -------------------------------------------------------------------------------- /samples/LottieDemo/Assets/location.json: -------------------------------------------------------------------------------- 1 | {"v":"4.5.9","fr":25,"ip":0,"op":50,"w":250,"h":250,"ddd":0,"assets":[],"layers":[{"ddd":0,"ind":0,"ty":4,"nm":"location Outlines","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":5,"s":[125,118,0],"e":[125,125.75,0],"to":[0,1.29166662693024,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"n":"0p833_0p833_0p333_0","t":20,"s":[125,125.75,0],"e":[125,118,0],"to":[0,0,0],"ti":[0,1.29166662693024,0]},{"t":35}]},"a":{"a":0,"k":[125,125,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[3.866,0],[0,3.866],[-3.866,0],[0,-3.866]],"o":[[-3.866,0],[0,-3.866],[3.866,0],[0,3.866]],"v":[[0,-12],[-7,-19],[0,-26],[7,-19]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[16.568,0],[0,-16.568],[-2.25,-4.209],[0,0],[0,0],[0,5.106]],"o":[[-16.568,0],[0,5.106],[0,0],[0,0],[2.249,-4.209],[0,-16.568]],"v":[[0,-48.706],[-30,-18.706],[-26.473,-4.584],[0,48.706],[26.474,-4.584],[30,-18.706]],"c":true}},"nm":"Path 2","mn":"ADBE Vector Shape - Group"},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge"},{"ty":"fl","c":{"a":0,"k":[0.929,0.11,0.141,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[125,125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":4,"mn":"ADBE Vector Group"}],"ip":0,"op":51,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":1,"ty":4,"nm":"pulse 2","ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":5,"s":[100],"e":[0]},{"t":22}]},"r":{"a":0,"k":0},"p":{"a":0,"k":[125,173.706,0]},"a":{"a":0,"k":[5.776,49.943,0]},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":5,"s":[0,0,100],"e":[244,244,100]},{"t":22}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[92.553,11.887]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":5,"s":[1,1,1,1],"e":[0.173,0.569,0.788,1]},{"t":22}]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[5.776,49.943],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"mn":"ADBE Vector Group"}],"ip":0,"op":51,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":2,"ty":4,"nm":"pulse","ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":5,"s":[100],"e":[0]},{"t":22}]},"r":{"a":0,"k":0},"p":{"a":0,"k":[125,173.706,0]},"a":{"a":0,"k":[5.776,49.943,0]},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":5,"s":[0,0,100],"e":[100,100,100]},{"t":22}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[92.553,11.887]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":5,"s":[1,1,1,1],"e":[0.173,0.569,0.788,1]},{"t":22}]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[5.776,49.943],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"mn":"ADBE Vector Group"}],"ip":0,"op":51,"st":0,"bm":0,"sr":1}]} -------------------------------------------------------------------------------- /samples/LottieDemo/Assets/location_marker.json: -------------------------------------------------------------------------------- 1 | {"assets":[],"layers":[{"ddd":0,"ind":0,"ty":1,"nm":"circle 2","ks":{"o":{"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":5,"s":[50],"e":[50]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":17,"s":[50],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":30,"s":[0],"e":[0]},{"t":55}],"x":"var $bm_rt;\n$bm_rt = loopOut('cycle');"},"r":{"k":0},"p":{"k":[100,100,0]},"a":{"k":[100,100,0]},"s":{"k":[{"i":{"x":[0.172,0.172,0.667],"y":[1,1,0.667]},"o":{"x":[0.01,0.01,0.333],"y":[0.705,0.705,0.333]},"n":["0p172_1_0p01_0p705","0p172_1_0p01_0p705","0p667_0p667_0p333_0p333"],"t":5,"s":[0,0,100],"e":[200,200,100]},{"i":{"x":[0.172,0.172,0.667],"y":[0.172,0.172,0.667]},"o":{"x":[0.333,0.333,0.333],"y":[0.333,0.333,0.333]},"n":["0p172_0p172_0p333_0p333","0p172_0p172_0p333_0p333","0p667_0p667_0p333_0p333"],"t":30,"s":[200,200,100],"e":[200,200,100]},{"t":55}],"x":"var $bm_rt;\n$bm_rt = loopOut('cycle');"}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"k":{"i":[[25.405,0],[0,-25.405],[-25.405,0],[0,25.405]],"o":[[-25.405,0],[0,25.405],[25.405,0],[0,-25.405]],"v":[[100,54],[54,100],[100,146],[146,100]],"c":true}},"o":{"k":100},"x":{"k":0},"nm":"Mask 1"}],"ef":[{"ty":5,"nm":"Circle","mn":"ADBE Circle","ix":1,"ef":[{"ty":3,"nm":"Center","mn":"ADBE Circle-0001","ix":1,"v":{"k":[100,100]}},{"ty":0,"nm":"Radius","mn":"ADBE Circle-0002","ix":2,"v":{"k":47.4}},{"ty":7,"nm":"Edge","mn":"ADBE Circle-0003","ix":3,"v":{"k":3}},{"ty":0,"nm":"Thickness","mn":"ADBE Circle-0004","ix":4,"v":{"k":0}},{"ty":6,"nm":"Feather","mn":"ADBE Circle-0005","ix":5,"v":0},{"ty":0,"nm":"Feather Outer Edge","mn":"ADBE Circle-0006","ix":6,"v":{"k":0}},{"ty":0,"nm":"Feather Inner Edge","mn":"ADBE Circle-0007","ix":7,"v":{"k":64}},{"ty":6,"nm":"Feather Inner Edge","mn":"ADBE Circle-0008","ix":8,"v":0},{"ty":7,"nm":"Invert Circle","mn":"ADBE Circle-0009","ix":9,"v":{"k":0}},{"ty":2,"nm":"Color","mn":"ADBE Circle-0010","ix":10,"v":{"k":[1,1,1,1]}},{"ty":0,"nm":"Opacity","mn":"ADBE Circle-0011","ix":11,"v":{"k":100}},{"ty":7,"nm":"Blending Mode","mn":"ADBE Circle-0012","ix":12,"v":{"k":1}}]}],"sw":200,"sh":200,"sc":"#ffffff","ip":5,"op":1005,"st":5,"bm":2,"sr":1},{"ddd":0,"ind":1,"ty":4,"nm":"marker","ks":{"o":{"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":1,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":2,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":3,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":4,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":5,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":6,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":7,"s":[0],"e":[100]},{"t":8}]},"r":{"k":0},"p":{"k":[100,100,0]},"a":{"k":[619.5,-0.91,0]},"s":{"k":[123.6,154.216,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[619.5,-22.149],[614.144,-2.152],[599,20.129],[619.5,0.893],[639.5,20.129],[624.732,-2.487]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"st","c":{"k":[0,0,0,1]},"o":{"k":100},"w":{"k":10},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"k":[0,0],"ix":2},"a":{"k":[0,0],"ix":1},"s":{"k":[100,100],"ix":3},"r":{"k":0,"ix":6},"o":{"k":100,"ix":7},"sk":{"k":0,"ix":4},"sa":{"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"mn":"ADBE Vector Group"}],"ip":0,"op":1000,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":2,"ty":4,"nm":"marker 2","ks":{"o":{"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":1,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":2,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":3,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":4,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":5,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":6,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":7,"s":[0],"e":[100]},{"t":8}]},"r":{"k":0},"p":{"k":[100,100,0]},"a":{"k":[619.5,-0.91,0]},"s":{"k":[86.375,107.77,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"k":[175,141.861]},"p":{"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"k":[0.73,0.84,0.09,1]},"o":{"k":100},"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"k":[619.375,-0.936],"ix":2},"a":{"k":[0,0],"ix":1},"s":{"k":[90.638,90.343],"ix":3},"r":{"k":0,"ix":6},"o":{"k":100,"ix":7},"sk":{"k":0,"ix":4},"sa":{"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"mn":"ADBE Vector Group"}],"ip":0,"op":1000,"st":0,"bm":0,"sr":1}],"v":"4.5.4","ddd":0,"ip":0,"op":1000,"fr":25,"w":200,"h":200} -------------------------------------------------------------------------------- /samples/LottieDemo/Assets/location_pin.json: -------------------------------------------------------------------------------- 1 | {"v":"4.5.7","fr":30,"ip":0,"op":32,"w":600,"h":600,"ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Line","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[300.75,384.5,0]},"a":{"a":0,"k":[0.75,81.5,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-19.5,81.5],[21,81.5]],"c":false}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"st","c":{"a":0,"k":[0.74,0.76,0.78,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"mn":"ADBE Vector Group"}],"ip":0,"op":32,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":2,"ty":4,"nm":"Pin","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.946,"y":0},"n":"0p833_0p833_0p946_0","t":0,"s":[300.019,150,0],"e":[300.019,299.918,0],"to":[0,24.986255645752,0],"ti":[0,-27.3195877075195,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":15,"s":[300.019,299.918,0],"e":[300.019,313.918,0],"to":[0,27.3195877075195,0],"ti":[0,24.986255645752,0]},{"i":{"x":0.077,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p077_1_0p167_0p167","t":17,"s":[300.019,313.918,0],"e":[300.019,150,0],"to":[0,-24.986255645752,0],"ti":[0,27.3195877075195,0]},{"t":32}]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[50,50,100]}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"s","pt":{"a":0,"k":{"i":[[22.368,0],[0,-22.368],[-22.368,0],[0,22.368]],"o":[[-22.368,0],[0,22.368],[22.368,0],[0,-22.368]],"v":[[0.461,-98],[-40.039,-57.5],[0.461,-17],[40.961,-57.5]],"c":true}},"o":{"a":0,"k":100},"x":{"a":0,"k":0},"nm":"Mask 1"}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":14,"s":[{"i":[[0,0],[0.08,12.776],[49.288,0.686],[0,-50.689],[-4.605,-10.887],[0,0],[-0.712,1.475]],"o":[[4.676,-11.054],[-0.307,-49.291],[-50.852,-0.707],[0,12.565],[0,0],[0.712,1.475],[0,0]],"v":[[83.81,-22.142],[90.959,-58.144],[1.257,-148.555],[-91.039,-57.564],[-83.888,-22.142],[-1.801,147.788],[1.724,147.788]],"c":true}],"e":[{"i":[[0,0],[0.08,12.776],[49.288,0.686],[0,-50.689],[-4.605,-10.887],[0,0],[-0.712,1.475]],"o":[[4.676,-11.054],[-0.307,-49.291],[-50.852,-0.707],[0,12.565],[0,0],[0.712,1.475],[0,0]],"v":[[83.81,-22.142],[90.959,-58.144],[1.257,-148.555],[-91.039,-57.564],[-83.888,-22.142],[-2.039,120.288],[1.486,120.288]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":16,"s":[{"i":[[0,0],[0.08,12.776],[49.288,0.686],[0,-50.689],[-4.605,-10.887],[0,0],[-0.712,1.475]],"o":[[4.676,-11.054],[-0.307,-49.291],[-50.852,-0.707],[0,12.565],[0,0],[0.712,1.475],[0,0]],"v":[[83.81,-22.142],[90.959,-58.144],[1.257,-148.555],[-91.039,-57.564],[-83.888,-22.142],[-2.039,120.288],[1.486,120.288]],"c":true}],"e":[{"i":[[0,0],[0.08,12.776],[49.288,0.686],[0,-50.689],[-4.605,-10.887],[0,0],[-0.712,1.475]],"o":[[4.676,-11.054],[-0.307,-49.291],[-50.852,-0.707],[0,12.565],[0,0],[0.712,1.475],[0,0]],"v":[[83.81,-22.142],[90.959,-58.144],[1.257,-148.555],[-91.039,-57.564],[-83.888,-22.142],[-1.801,147.788],[1.724,147.788]],"c":true}]},{"t":19}]},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[0.91,0.3,0.24,1]},"o":{"a":0,"k":100},"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"mn":"ADBE Vector Group"}],"ip":0,"op":32,"st":0,"bm":0,"sr":1}]} -------------------------------------------------------------------------------- /samples/LottieDemo/Assets/material loading.json: -------------------------------------------------------------------------------- 1 | {"v":"4.6.8","fr":29.9700012207031,"ip":0,"op":119.000004846969,"w":256,"h":256,"nm":"Comp 1","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 4","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[128,128.016,0]},"a":{"a":0,"k":[13,13.016,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[200,200]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":92,"s":[0],"e":[25]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":105,"s":[25],"e":[49]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":112,"s":[49],"e":[100]},{"t":120.0000048877}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":90,"s":[1],"e":[100]},{"t":120.0000048877}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim"},{"ty":"st","c":{"a":0,"k":[0.023529,0.854902,0.238708,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":20},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[12,13],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":90.0000036657751,"op":390.000015885026,"st":90.0000036657751,"bm":0,"sr":1},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 3","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[128,128.016,0]},"a":{"a":0,"k":[13,13.016,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[200,200]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":62,"s":[0],"e":[25]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":75,"s":[25],"e":[49]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":82,"s":[49],"e":[100]},{"t":90.0000036657751}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":60,"s":[1],"e":[100]},{"t":90.0000036657751}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim"},{"ty":"st","c":{"a":0,"k":[0.854902,0.023529,0.2582694,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":20},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[12,13],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":60.0000024438501,"op":360.000014663101,"st":60.0000024438501,"bm":0,"sr":1},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 2","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[128,128.016,0]},"a":{"a":0,"k":[13,13.016,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[200,200]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":32,"s":[0],"e":[25]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":45,"s":[25],"e":[49]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":52,"s":[49],"e":[100]},{"t":60.0000024438501}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":30,"s":[1],"e":[100]},{"t":60.0000024438501}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim"},{"ty":"st","c":{"a":0,"k":[0.023529,0.6886272,0.854902,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":20},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[12,13],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":30.0000012219251,"op":330.000013441176,"st":30.0000012219251,"bm":0,"sr":1},{"ddd":0,"ind":4,"ty":4,"nm":"Shape Layer 1","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[128,128.016,0]},"a":{"a":0,"k":[13,13.016,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[200,200]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":2,"s":[0],"e":[25]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":15,"s":[25],"e":[49]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":22,"s":[49],"e":[100]},{"t":30.0000012219251}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":0,"s":[1],"e":[100]},{"t":30.0000012219251}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim"},{"ty":"st","c":{"a":0,"k":[0.854902,0.54902,0.023529,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":20},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[12,13],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":300.00001221925,"st":0,"bm":0,"sr":1}]} -------------------------------------------------------------------------------- /samples/LottieDemo/Assets/material_loader.json: -------------------------------------------------------------------------------- 1 | {"v":"4.5.7","fr":60,"ip":0,"op":120,"w":400,"h":300,"ddd":0,"assets":[{"id":"comp_50","layers":[{"ddd":0,"ind":0,"ty":4,"nm":"Shape Layer 1","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[200,150,0]},"a":{"a":0,"k":[-5,4,0]},"s":{"a":0,"k":[67.386,67.386,100]}},"ao":1,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[208.5,208.5]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"st","c":{"a":0,"k":[0.9,0.15,0.4,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":24},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[-5.5,4],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"mn":"ADBE Vector Group"},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.336],"y":[0.99]},"o":{"x":[0.333],"y":[0]},"n":["0p336_0p99_0p333_0"],"t":20,"s":[0],"e":[100]},{"t":80}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.337],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p337_1_0p333_0"],"t":0,"s":[0],"e":[100]},{"t":60}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim"}],"ip":0,"op":240,"st":0,"bm":0,"sr":1}]}],"layers":[{"ddd":0,"ind":0,"ty":0,"nm":"Shape Layer 1 Comp 1","refId":"comp_50","ks":{"o":{"a":0,"k":100},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":30,"s":[180],"e":[360]},{"t":71}]},"p":{"a":0,"k":[200,150,0]},"a":{"a":0,"k":[200,150,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"w":400,"h":300,"ip":20,"op":260,"st":20,"bm":0,"sr":1},{"ddd":0,"ind":1,"ty":0,"nm":"Shape Layer 1 Comp 1","refId":"comp_50","ks":{"o":{"a":0,"k":100},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":19,"s":[0],"e":[180]},{"t":59}]},"p":{"a":0,"k":[200,150,0]},"a":{"a":0,"k":[200,150,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"w":400,"h":300,"ip":0,"op":59,"st":0,"bm":0,"sr":1}]} -------------------------------------------------------------------------------- /samples/LottieDemo/Assets/material_loading_2.json: -------------------------------------------------------------------------------- 1 | {"v":"4.6.8","fr":29.9700012207031,"ip":0,"op":60.0000024438501,"w":256,"h":256,"nm":"Comp 1","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 3","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":40,"s":[208.6,127.969,0],"e":[208.6,88,0],"to":[0,-6.66145849227905,0],"ti":[0,-0.00520833348855,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":50,"s":[208.6,88,0],"e":[208.6,128,0],"to":[0,0.00520833348855,0],"ti":[0,-6.66666650772095,0]},{"t":60.0000024438501}]},"a":{"a":0,"k":[-70,-0.5,0]},"s":{"a":0,"k":[75,75,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[33.75,34.5]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":0,"k":[0.9843137,0.5490196,0,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-70.125,-0.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":300.00001221925,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 2","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":30,"s":[168.6,128,0],"e":[168.6,88,0],"to":[0,-6.66666650772095,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":40,"s":[168.6,88,0],"e":[168.6,128,0],"to":[0,0,0],"ti":[0,-6.66666650772095,0]},{"t":50.0000020365418}]},"a":{"a":0,"k":[-70,-0.5,0]},"s":{"a":0,"k":[75,75,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[33.75,34.5]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":0,"k":[0.9921569,0.8470588,0.2078431,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-70.125,-0.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":300.00001221925,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 1","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":20,"s":[128.594,127.969,0],"e":[128.594,88,0],"to":[0,-6.66145849227905,0],"ti":[0,-0.00520833348855,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":30,"s":[128.594,88,0],"e":[128.594,128,0],"to":[0,0.00520833348855,0],"ti":[0,-6.66666650772095,0]},{"t":40.0000016292334}]},"a":{"a":0,"k":[-70,-0.5,0]},"s":{"a":0,"k":[75,75,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[33.75,34.5]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":0,"k":[0.2627451,0.627451,0.2784314,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-70.125,-0.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":300.00001221925,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":4,"ty":4,"nm":"Shape Layer 4","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":10,"s":[88.6,127.969,0],"e":[88.6,88,0],"to":[0,-6.66145849227905,0],"ti":[0,-0.00520833348855,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":20,"s":[88.6,88,0],"e":[88.6,128,0],"to":[0,0.00520833348855,0],"ti":[0,-6.66666650772095,0]},{"t":30.0000012219251}]},"a":{"a":0,"k":[-70,-0.5,0]},"s":{"a":0,"k":[75,75,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[33.75,34.5]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":0,"k":[0.1176471,0.5333334,0.8980392,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-70.125,-0.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":300.00001221925,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":5,"ty":4,"nm":"Shape Layer 5","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":0,"s":[48.6,127.969,0],"e":[48.6,88,0],"to":[0,-6.66145849227905,0],"ti":[0,-0.00520833348855,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":10,"s":[48.6,88,0],"e":[48.6,128,0],"to":[0,0.00520833348855,0],"ti":[0,-6.66666650772095,0]},{"t":20.0000008146167}]},"a":{"a":0,"k":[-70,-0.5,0]},"s":{"a":0,"k":[75,75,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[33.75,34.5]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":0,"k":[0.8980392,0.2235294,0.2078431,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-70.125,-0.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":300.00001221925,"st":0,"bm":0,"sr":1}]} -------------------------------------------------------------------------------- /samples/LottieDemo/Assets/material_wave_loading.json: -------------------------------------------------------------------------------- 1 | {"v":"4.6.8","fr":29.9700012207031,"ip":0,"op":40.0000016292334,"w":256,"h":256,"nm":"Comp 1","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 3","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":20,"s":[208.6,127.969,0],"e":[208.6,88,0],"to":[0,-6.66145849227905,0],"ti":[0,-0.00520833348855,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":30,"s":[208.6,88,0],"e":[208.6,128,0],"to":[0,0.00520833348855,0],"ti":[0,-6.66666650772095,0]},{"t":40.0000016292334}]},"a":{"a":0,"k":[-70,-0.5,0]},"s":{"a":0,"k":[75,75,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[33.75,34.5]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":0,"k":[0.9843137,0.5490196,0,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-70.125,-0.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":300.00001221925,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 2","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":15,"s":[168.6,128,0],"e":[168.6,88,0],"to":[0,-6.66666650772095,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":25,"s":[168.6,88,0],"e":[168.6,128,0],"to":[0,0,0],"ti":[0,-6.66666650772095,0]},{"t":35.0000014255792}]},"a":{"a":0,"k":[-70,-0.5,0]},"s":{"a":0,"k":[75,75,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[33.75,34.5]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":0,"k":[0.9921569,0.8470588,0.2078431,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-70.125,-0.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":300.00001221925,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 1","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":10,"s":[128.594,127.969,0],"e":[128.594,88,0],"to":[0,-6.66145849227905,0],"ti":[0,-0.00520833348855,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":20,"s":[128.594,88,0],"e":[128.594,128,0],"to":[0,0.00520833348855,0],"ti":[0,-6.66666650772095,0]},{"t":30.0000012219251}]},"a":{"a":0,"k":[-70,-0.5,0]},"s":{"a":0,"k":[75,75,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[33.75,34.5]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":0,"k":[0.2627451,0.627451,0.2784314,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-70.125,-0.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":300.00001221925,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":4,"ty":4,"nm":"Shape Layer 4","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":5,"s":[88.6,127.969,0],"e":[88.6,88,0],"to":[0,-6.66145849227905,0],"ti":[0,-0.00520833348855,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":15,"s":[88.6,88,0],"e":[88.6,128,0],"to":[0,0.00520833348855,0],"ti":[0,-6.66666650772095,0]},{"t":25.0000010182709}]},"a":{"a":0,"k":[-70,-0.5,0]},"s":{"a":0,"k":[75,75,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[33.75,34.5]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":0,"k":[0.1176471,0.5333334,0.8980392,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-70.125,-0.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":300.00001221925,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":5,"ty":4,"nm":"Shape Layer 5","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":0,"s":[48.6,127.969,0],"e":[48.6,88,0],"to":[0,-6.66145849227905,0],"ti":[0,-0.00520833348855,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":10,"s":[48.6,88,0],"e":[48.6,128,0],"to":[0,0.00520833348855,0],"ti":[0,-6.66666650772095,0]},{"t":20.0000008146167}]},"a":{"a":0,"k":[-70,-0.5,0]},"s":{"a":0,"k":[75,75,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[33.75,34.5]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":0,"k":[0.8980392,0.2235294,0.2078431,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-70.125,-0.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":300.00001221925,"st":0,"bm":0,"sr":1}]} -------------------------------------------------------------------------------- /samples/LottieDemo/Assets/menuButton2.json: -------------------------------------------------------------------------------- 1 | {"v":"4.5.9","fr":29.9700012207031,"ip":0,"op":120.0000048877,"w":800,"h":600,"ddd":0,"assets":[],"layers":[{"ddd":0,"ind":0,"ty":4,"nm":"Icon","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[519.707,418,0]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[68,8]},"p":{"a":0,"k":[0,-15]},"r":{"a":0,"k":0},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect"},{"ty":"fl","c":{"a":0,"k":[0.108,0.108,0.108,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-118,-118],"ix":2},"a":{"a":0,"k":[0,-14.881],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":30,"s":[-45],"e":[-135]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":40,"s":[-135],"e":[-135]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":90,"s":[-135],"e":[-45]},{"t":100.000004073084}],"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 4","np":3,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[68,8]},"p":{"a":0,"k":[0,-15]},"r":{"a":0,"k":0},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect"},{"ty":"fl","c":{"a":0,"k":[0.108,0.108,0.108,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-118,-118],"ix":2},"a":{"a":0,"k":[0,-14.881],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":-45,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3","np":3,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":1,"k":[{"i":{"x":[0,0.667],"y":[1,0.667]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0_1_0p167_0p167","0p667_0p667_0p167_0p167"],"t":30,"s":[38,8],"e":[0,8]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":37,"s":[0,8],"e":[0,8]},{"i":{"x":[0,0.667],"y":[1,0.667]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0_1_0p167_0p167","0p667_0p667_0p167_0p167"],"t":93,"s":[0,8],"e":[38,8]},{"t":100.000004073084}]},"p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.222},"n":"0_1_0p167_0p222","t":30,"s":[0,10],"e":[23,10],"to":[3.83333325386047,0],"ti":[-3.83333325386047,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":37,"s":[23,10],"e":[23,10],"to":[0,0],"ti":[0,0]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.222},"n":"0_1_0p167_0p222","t":93,"s":[23,10],"e":[0,10],"to":[-3.83333325386047,0],"ti":[3.83333325386047,0]},{"t":100.000004073084}]},"r":{"a":0,"k":0},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect"},{"ty":"fl","c":{"a":0,"k":[0.106,0.106,0.106,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-118,-118],"ix":2},"a":{"a":0,"k":[0,-14.881],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":-45,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":36,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":37,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":93,"s":[0],"e":[100]},{"t":94.0000038286985}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 2","np":3,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":1,"k":[{"i":{"x":[0,0.667],"y":[1,0.667]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0_1_0p167_0p167","0p667_0p667_0p167_0p167"],"t":30,"s":[38,8],"e":[0,8]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":37,"s":[0,8],"e":[0,8]},{"i":{"x":[0,0.667],"y":[1,0.667]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0_1_0p167_0p167","0p667_0p667_0p167_0p167"],"t":93,"s":[0,8],"e":[38,8]},{"t":100.000004073084}]},"p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.222},"n":"0_1_0p167_0p222","t":30,"s":[0,-10],"e":[-23,-10],"to":[-3.83333325386047,0],"ti":[3.83333325386047,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":37,"s":[-23,-10],"e":[-23,-10],"to":[0,0],"ti":[0,0]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.222},"n":"0_1_0p167_0p222","t":93,"s":[-23,-10],"e":[0,-10],"to":[3.83333325386047,0],"ti":[-3.83333325386047,0]},{"t":100.000004073084}]},"r":{"a":0,"k":0},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect"},{"ty":"fl","c":{"a":0,"k":[0.105,0.105,0.105,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-118,-118],"ix":2},"a":{"a":0,"k":[0,15.122],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":-45,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":36,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":37,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":93,"s":[0],"e":[100]},{"t":94.0000038286985}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"mn":"ADBE Vector Group"}],"ip":0,"op":300.00001221925,"st":0,"bm":0,"sr":1}]} -------------------------------------------------------------------------------- /samples/LottieDemo/Assets/menu_button_alt.json: -------------------------------------------------------------------------------- 1 | {"v":"4.5.9","fr":29.9700012207031,"ip":0,"op":120.0000048877,"w":800,"h":600,"ddd":0,"assets":[],"layers":[{"ddd":0,"ind":0,"ty":4,"nm":"Icon","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[519.707,418,0]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[68,8]},"p":{"a":0,"k":[0,-15]},"r":{"a":0,"k":0},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect"},{"ty":"fl","c":{"a":0,"k":[0.108,0.108,0.108,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-118,-118],"ix":2},"a":{"a":0,"k":[0,-14.881],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":30,"s":[-45],"e":[-135]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":40,"s":[-135],"e":[-135]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":90,"s":[-135],"e":[-45]},{"t":100.000004073084}],"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 4","np":3,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[68,8]},"p":{"a":0,"k":[0,-15]},"r":{"a":0,"k":0},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect"},{"ty":"fl","c":{"a":0,"k":[0.108,0.108,0.108,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-118,-118],"ix":2},"a":{"a":0,"k":[0,-14.881],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":-45,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3","np":3,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":1,"k":[{"i":{"x":[0,0.667],"y":[1,0.667]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0_1_0p167_0p167","0p667_0p667_0p167_0p167"],"t":30,"s":[38,8],"e":[0,8]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":37,"s":[0,8],"e":[0,8]},{"i":{"x":[0,0.667],"y":[1,0.667]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0_1_0p167_0p167","0p667_0p667_0p167_0p167"],"t":93,"s":[0,8],"e":[38,8]},{"t":100.000004073084}]},"p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.222},"n":"0_1_0p167_0p222","t":30,"s":[0,10],"e":[23,10],"to":[3.83333325386047,0],"ti":[-3.83333325386047,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":37,"s":[23,10],"e":[23,10],"to":[0,0],"ti":[0,0]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.222},"n":"0_1_0p167_0p222","t":93,"s":[23,10],"e":[0,10],"to":[-3.83333325386047,0],"ti":[3.83333325386047,0]},{"t":100.000004073084}]},"r":{"a":0,"k":0},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect"},{"ty":"fl","c":{"a":0,"k":[0.106,0.106,0.106,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-118,-118],"ix":2},"a":{"a":0,"k":[0,-14.881],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":-45,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":36,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":37,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":93,"s":[0],"e":[100]},{"t":94.0000038286985}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 2","np":3,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":1,"k":[{"i":{"x":[0,0.667],"y":[1,0.667]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0_1_0p167_0p167","0p667_0p667_0p167_0p167"],"t":30,"s":[38,8],"e":[0,8]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":37,"s":[0,8],"e":[0,8]},{"i":{"x":[0,0.667],"y":[1,0.667]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0_1_0p167_0p167","0p667_0p667_0p167_0p167"],"t":93,"s":[0,8],"e":[38,8]},{"t":100.000004073084}]},"p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.222},"n":"0_1_0p167_0p222","t":30,"s":[0,-10],"e":[-23,-10],"to":[-3.83333325386047,0],"ti":[3.83333325386047,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":37,"s":[-23,-10],"e":[-23,-10],"to":[0,0],"ti":[0,0]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.222},"n":"0_1_0p167_0p222","t":93,"s":[-23,-10],"e":[0,-10],"to":[3.83333325386047,0],"ti":[-3.83333325386047,0]},{"t":100.000004073084}]},"r":{"a":0,"k":0},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect"},{"ty":"fl","c":{"a":0,"k":[0.105,0.105,0.105,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-118,-118],"ix":2},"a":{"a":0,"k":[0,15.122],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":-45,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":36,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":37,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":93,"s":[0],"e":[100]},{"t":94.0000038286985}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"mn":"ADBE Vector Group"}],"ip":0,"op":300.00001221925,"st":0,"bm":0,"sr":1}]} -------------------------------------------------------------------------------- /samples/LottieDemo/Assets/moving_eye.json: -------------------------------------------------------------------------------- 1 | {"v":"4.6.6","fr":24,"ip":0,"op":72,"w":500,"h":350,"nm":"Eye 2","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Eye Outline","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[250,175,0]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[226,226,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[74.969,0],[0,0],[-74.313,0],[0,0]],"o":[[-74.781,0],[0,0],[74.937,0],[0,0]],"v":[[0.031,-50],[-100,0],[0.063,49.813],[100,0]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"st","c":{"a":0,"k":[0.3176471,0.1019608,0.0901961,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":15},"lc":2,"lj":2,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":72,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":2,"ty":4,"nm":"Eyeball","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.35,"y":1},"o":{"x":0.65,"y":0},"n":"0p35_1_0p65_0","t":0,"s":[199,182,0],"e":[327,157,0],"to":[21.3333339691162,-4.16666650772095,0],"ti":[2.33333325386047,-3.83333325386047,0]},{"i":{"x":0.35,"y":1},"o":{"x":0.65,"y":0},"n":"0p35_1_0p65_0","t":19,"s":[327,157,0],"e":[185,205,0],"to":[-2.33333325386047,3.83333325386047,0],"ti":[2.16666674613953,-7.66666650772095,0]},{"i":{"x":0.35,"y":1},"o":{"x":0.65,"y":0},"n":"0p35_1_0p65_0","t":38,"s":[185,205,0],"e":[314,203,0],"to":[-2.16666674613953,7.66666650772095,0],"ti":[-2.33333325386047,3.83333325386047,0]},{"i":{"x":0.35,"y":1},"o":{"x":0.65,"y":0},"n":"0p35_1_0p65_0","t":57,"s":[314,203,0],"e":[199,182,0],"to":[2.33333325386047,-3.83333325386047,0],"ti":[19.1666660308838,3.5,0]},{"t":72}]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[226,226,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[25,25]},"p":{"a":0,"k":[25,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"st","c":{"a":0,"k":[0.3176471,0.1019608,0.0901961,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":7.5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"fl","c":{"a":0,"k":[0.9764706,0.9019608,0.3607843,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.35],"y":[1]},"o":{"x":[0.65],"y":[0]},"n":["0p35_1_0p65_0"],"t":0,"s":[186],"e":[316.901]},{"i":{"x":[0.35],"y":[1]},"o":{"x":[0.65],"y":[0]},"n":["0p35_1_0p65_0"],"t":19,"s":[316.901],"e":[490.111]},{"i":{"x":[0.35],"y":[1]},"o":{"x":[0.65],"y":[0]},"n":["0p35_1_0p65_0"],"t":38,"s":[490.111],"e":[410.926]},{"i":{"x":[0.35],"y":[1]},"o":{"x":[0.65],"y":[0]},"n":["0p35_1_0p65_0"],"t":57,"s":[410.926],"e":[186]},{"t":72}],"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[50,50]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"st","c":{"a":0,"k":[0.3176471,0.1019608,0.0901961,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":15},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"fl","c":{"a":0,"k":[0.9764706,0.9019608,0.3607843,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"ix":2,"mn":"ADBE Vector Group"}],"ip":0,"op":72,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":3,"ty":4,"nm":"Eye Back","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[250,175,0]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[226,226,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[74.969,0],[0,0],[-74.313,0],[0,0]],"o":[[-74.781,0],[0,0],[74.937,0],[0,0]],"v":[[0.031,-50],[-100,0],[0.063,49.813],[100,0]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[0.9764706,0.9019608,0.3607843,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":72,"st":0,"bm":0,"sr":1}]} -------------------------------------------------------------------------------- /samples/LottieDemo/Assets/on_off_settings_switch.json: -------------------------------------------------------------------------------- 1 | {"v":"4.10.1","fr":60,"ip":0,"op":107,"w":46,"h":22,"nm":"ani","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":1,"y":1},"o":{"x":0,"y":0},"n":"1_1_0_0","t":13.16,"s":[10.5,10.625,0],"e":[32.5,10.625,0],"to":[3.66666674613953,0,0],"ti":[-3.66666674613953,0,0]},{"i":{"x":1,"y":1},"o":{"x":0,"y":0},"n":"1_1_0_0","t":34.16,"s":[32.5,10.625,0],"e":[32.5,10.625,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":1,"y":1},"o":{"x":0,"y":0},"n":"1_1_0_0","t":55,"s":[32.5,10.625,0],"e":[10.5,10.625,0],"to":[-3.66666674613953,0,0],"ti":[3.66666674613953,0,0]},{"t":76}],"ix":2},"a":{"a":0,"k":[7.062,-1.812,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Puppet","np":4,"mn":"ADBE FreePin3","ix":1,"en":1,"ef":[{"ty":7,"nm":"On Transparent","mn":"ADBE FreePin3 On Transparent","ix":1,"v":{"a":0,"k":0,"ix":1}}]}],"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[10.947,10.947],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":13,"s":[0.905989587307,0.128265246749,0.293031275272,1],"e":[0.119234621525,0.709344387054,0.486860007048,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":34,"s":[0.119234621525,0.709344387054,0.486860007048,1],"e":[0.119234621525,0.709344387054,0.486860007048,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":55,"s":[0.119234621525,0.709344387054,0.486860007048,1],"e":[0.905989587307,0.128265246749,0.293031275272,1]},{"t":76}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[7.223,-1.589],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1800,"st":0,"bm":3},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 2","sr":1,"ks":{"o":{"a":0,"k":20,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[23,11,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[82,82,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[37.452,12.656],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":20,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.985294117647,0.977460674211,0.977460674211,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0.243,-0.355],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1800,"st":0,"bm":0}]} -------------------------------------------------------------------------------- /samples/LottieDemo/Assets/panel2d.json: -------------------------------------------------------------------------------- 1 | {"v":"4.6.3","fr":30,"ip":0,"op":121,"w":750,"h":750,"nm":"panel 2d text","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"panel 2d","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[375,611,0]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[0,-200],[216.001,-102.99],[0,18],[-215.999,-102.99]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"rd","nm":"Round Corners 1","r":{"a":0,"k":38},"mn":"ADBE Vector Filter - RC"},{"ty":"fl","c":{"a":0,"k":[0,1,0.5882352,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,-104],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.859,0.752],"y":[0.859,1]},"o":{"x":[0.333,0.893],"y":[0.333,0]},"n":["0p859_0p859_0p333_0p333","0p752_1_0p893_0"],"t":0,"s":[100,0],"e":[100,100]},{"i":{"x":[0.5,0.5],"y":[0.5,1]},"o":{"x":[0.001,0.001],"y":[0.001,0]},"n":["0p5_0p5_0p001_0p001","0p5_1_0p001_0"],"t":6,"s":[100,100],"e":[100,109.503]},{"i":{"x":[0.5,0.5],"y":[0.5,1]},"o":{"x":[0.5,0.5],"y":[0.5,0]},"n":["0p5_0p5_0p5_0p5","0p5_1_0p5_0"],"t":11,"s":[100,109.503],"e":[100,98.866]},{"i":{"x":[0.5,0.5],"y":[0.5,1]},"o":{"x":[0.5,0.5],"y":[0.5,0]},"n":["0p5_0p5_0p5_0p5","0p5_1_0p5_0"],"t":21.518,"s":[100,98.866],"e":[100,100.085]},{"t":31.8623046875}],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.999],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p999_1_0p167_0p167"],"t":0.148,"s":[-90],"e":[0]},{"i":{"x":[0.5],"y":[1]},"o":{"x":[0.001],"y":[0]},"n":["0p5_1_0p001_0"],"t":6,"s":[0],"e":[3.987]},{"i":{"x":[0.5],"y":[1]},"o":{"x":[0.5],"y":[0]},"n":["0p5_1_0p5_0"],"t":11,"s":[3.987],"e":[-1.021]},{"i":{"x":[0.5],"y":[1]},"o":{"x":[0.5],"y":[0]},"n":["0p5_1_0p5_0"],"t":21.134,"s":[-1.021],"e":[0.077]},{"i":{"x":[0.5],"y":[1]},"o":{"x":[0.5],"y":[0]},"n":["0p5_1_0p5_0"],"t":31.223,"s":[0.077],"e":[-0.006]},{"i":{"x":[0.5],"y":[1]},"o":{"x":[0.5],"y":[0]},"n":["0p5_1_0p5_0"],"t":41.312,"s":[-0.006],"e":[0]},{"t":51.400390625}],"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":540,"st":0,"bm":0,"sr":1}]} -------------------------------------------------------------------------------- /samples/LottieDemo/Assets/plane_to_dollar.json: -------------------------------------------------------------------------------- 1 | {"assets":[],"layers":[{"ddd":0,"ind":0,"ty":3,"nm":"NULL CONTROL","ks":{"o":{"k":0},"r":{"k":0},"p":{"k":[{"i":{"x":0.047,"y":1},"o":{"x":0.48,"y":0},"n":"0p047_1_0p48_0","t":12,"s":[519.89,398.49,0],"e":[400,398.49,0],"to":[0,0,0],"ti":[0,0,0]},{"t":75}]},"a":{"k":[60,60,0]},"s":{"k":[100,100,100]}},"ao":0,"ip":0,"op":9668,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 2","parent":0,"ks":{"o":{"k":100},"r":{"k":0},"p":{"k":[72.875,311.184,0]},"a":{"k":[132.765,-346.327,0]},"s":{"k":[{"i":{"x":[0.52,0.52,0.52],"y":[0.52,1,0.52]},"o":{"x":[0.48,0.48,0.48],"y":[0.48,0,0.48]},"n":["0p52_0p52_0p48_0p48","0p52_1_0p48_0","0p52_0p52_0p48_0p48"],"t":35,"s":[100,0,100],"e":[100,100,100]},{"t":70}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[133.224,-346.327],[132.306,-260.694]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"st","fillEnabled":true,"c":{"k":[0,0.41,0.56,1]},"o":{"k":100},"w":{"k":87},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"k":[0,0],"ix":2},"a":{"k":[0,0],"ix":1},"s":{"k":[100,100],"ix":3},"r":{"k":0,"ix":6},"o":{"k":100,"ix":7},"sk":{"k":0,"ix":4},"sa":{"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"mn":"ADBE Vector Group"},{"ty":"tm","s":{"k":100,"ix":1},"e":{"k":0,"ix":2},"o":{"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim"}],"ip":50,"op":9668,"st":35,"bm":0,"sr":1},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 1","parent":0,"ks":{"o":{"k":100},"r":{"k":0},"p":{"k":[72.875,-191.184,0]},"a":{"k":[132.765,-260.694,0]},"s":{"k":[{"i":{"x":[0.52,0.52,0.52],"y":[0.52,1,0.52]},"o":{"x":[0.48,0.48,0.48],"y":[0.48,0,0.48]},"n":["0p52_0p52_0p48_0p48","0p52_1_0p48_0","0p52_0p52_0p48_0p48"],"t":35,"s":[100,0,100],"e":[100,100,100]},{"t":70}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[133.224,-346.327],[132.306,-260.694]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"st","fillEnabled":true,"c":{"k":[0,0.41,0.56,1]},"o":{"k":100},"w":{"k":87},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"k":[0,0],"ix":2},"a":{"k":[0,0],"ix":1},"s":{"k":[100,100],"ix":3},"r":{"k":0,"ix":6},"o":{"k":100,"ix":7},"sk":{"k":0,"ix":4},"sa":{"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"mn":"ADBE Vector Group"},{"ty":"tm","s":{"k":100,"ix":1},"e":{"k":0,"ix":2},"o":{"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim"}],"ip":35,"op":9668,"st":35,"bm":0,"sr":1},{"ddd":0,"ind":3,"ty":4,"nm":"Line 2","parent":0,"ks":{"o":{"k":100},"r":{"k":0},"p":{"k":[-59.89,61.51,0]},"a":{"k":[0,0,0]},"s":{"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"k":{"i":[[0,0],[0,0],[0,125],[58,0],[0,-90],[-84,-35.5],[0,-81],[101,0],[0,120]],"o":[[0,0],[0,0],[0,-99],[-51,0],[0,75],[70.706,29.882],[0,57],[-16,0],[0,-121]],"v":[[97.5,-2],[191,0],[280,-114],[129,-244],[-18,-134],[148,6.5],[288,139],[132,244],[-32,117]],"c":false}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"st","fillEnabled":true,"c":{"k":[0,0.41,0.56,1]},"o":{"k":100},"w":{"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":10,"s":[67],"e":[85]},{"t":61}]},"lc":1,"lj":2,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"k":[0,0],"ix":2},"a":{"k":[0,0],"ix":1},"s":{"k":[100,100],"ix":3},"r":{"k":0,"ix":6},"o":{"k":100,"ix":7},"sk":{"k":0,"ix":4},"sa":{"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"mn":"ADBE Vector Group"},{"ty":"tm","s":{"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.567],"y":[0]},"n":["0_1_0p567_0"],"t":10,"s":[0],"e":[16.5]},{"t":61}],"ix":1},"e":{"k":[{"i":{"x":[0.19],"y":[1]},"o":{"x":[0.387],"y":[0]},"n":["0p19_1_0p387_0"],"t":10,"s":[0],"e":[100]},{"t":70}],"ix":2},"o":{"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim"}],"ip":10,"op":156,"st":10,"bm":0,"sr":1},{"ddd":0,"ind":5,"ty":4,"nm":"P","parent":0,"ks":{"o":{"k":100},"r":{"k":0},"p":{"k":[179.89,60.853,0]},"a":{"k":[40.25,19.195,0]},"s":{"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":22,"s":[1198.901,1198.901,100],"e":[0,0,100]},{"t":27}]}},"ao":0,"shapes":[{"ind":0,"ty":"sh","ks":{"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.5,"y":0},"n":"0p833_0p833_0p5_0","t":14,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,1.66],[1.66,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[1.66,0],[0,-1.66],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[12.25,38.25],[16.25,38.25],[26.25,22.25],[37.25,22.25],[40.25,19.25],[37.25,16.25],[26.25,16.25],[16.25,0.25],[12.25,0.25],[17.25,16.25],[6.25,16.25],[3.25,12.25],[0.25,12.25],[2.25,19.25],[0.25,26.25],[3.25,26.25],[6.25,22.25],[17.25,22.25]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,1.66],[1.66,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[1.203,0],[0,-1.021],[-1.085,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[1.66,0],[0,-1.66],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-1.298,0],[0,1.021],[0.781,0],[0,0],[0,0],[0,0]],"v":[[27.319,22.22],[29.888,22.208],[31.263,22.214],[37.25,22.25],[40.25,19.25],[37.25,16.25],[31.263,16.214],[29.536,16.212],[26.99,16.223],[26.483,16.224],[20.607,16.245],[19.166,14.512],[17.834,14.497],[16.607,19.245],[17.834,23.983],[19.25,23.98],[20.607,22.245],[26.483,22.224]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p5_1_0p167_0p167","t":22,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,1.66],[1.66,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[1.203,0],[0,-1.021],[-1.085,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[1.66,0],[0,-1.66],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-1.298,0],[0,1.021],[0.781,0],[0,0],[0,0],[0,0]],"v":[[27.319,22.22],[29.888,22.208],[31.263,22.214],[37.25,22.25],[40.25,19.25],[37.25,16.25],[31.263,16.214],[29.536,16.212],[26.99,16.223],[26.483,16.224],[20.607,16.245],[19.166,14.512],[17.834,14.497],[16.607,19.245],[17.834,23.983],[19.25,23.98],[20.607,22.245],[26.483,22.224]],"c":true}],"e":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,1.66],[1.66,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[2.125,0],[0,-1.803],[-1.916,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[1.66,0],[0,-1.66],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-2.291,0],[0,1.803],[1.379,0],[0,0],[0,0],[0,0]],"v":[[33.593,22.205],[35.066,22.184],[35.102,22.186],[37.25,22.25],[40.25,19.25],[37.25,16.25],[35.102,16.186],[35.055,16.184],[33.621,16.204],[33.554,16.205],[31.601,16.241],[31.354,16.244],[31.299,16.219],[27.601,19.241],[31.299,22.247],[31.503,22.242],[31.601,22.241],[33.554,22.205]],"c":true}]},{"t":26}]},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","fillEnabled":true,"c":{"k":[0,0.41,0.56,1]},"o":{"k":100},"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"}],"ip":0,"op":41,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":6,"ty":1,"nm":"White Solid 5","ks":{"o":{"k":100},"r":{"k":0},"p":{"k":[400,400,0]},"a":{"k":[400,400,0]},"s":{"k":[100,100,100]}},"ao":0,"sw":800,"sh":800,"sc":"#ffffff","ip":0,"op":9633,"st":0,"bm":0,"sr":1}],"v":"4.5.3","ddd":0,"ip":0,"op":117,"fr":30,"w":800,"h":800} -------------------------------------------------------------------------------- /samples/LottieDemo/Assets/play,_pause.json: -------------------------------------------------------------------------------- 1 | {"v":"4.6.0","fr":60,"ip":0,"op":60,"w":1080,"h":1080,"nm":"How to Animate an Icon in After Effects","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Play Left","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.11,"y":1},"o":{"x":0.333,"y":0},"n":"0p11_1_0p333_0","t":26,"s":[546,540,0],"e":[546,512,0],"to":[0,0,0],"ti":[0,0,0]},{"t":46}]},"a":{"a":0,"k":[166.284,216.209,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[102.67,329.749],[102.67,102.67],[229.899,216.209]],"c":false}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.11],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p11_1_0p333_0"],"t":6,"s":[100],"e":[38.8]},{"t":46}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim"},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":41.068},"lc":2,"lj":2,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[166.284,216.21],"ix":2},"a":{"a":0,"k":[166.284,216.21],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"mn":"ADBE Vector Group"}],"ip":-2,"op":2238.23223223223,"st":6,"bm":0,"sr":1},{"ddd":0,"ind":2,"ty":4,"nm":"Pause Right","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.667,"y":0.973},"o":{"x":0.333,"y":0},"n":"0p667_0p973_0p333_0","t":31,"s":[546.445,579.817,0],"e":[546.445,478.139,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0.056},"n":"0p667_1_0p333_0p056","t":37,"s":[546.445,478.139,0],"e":[546.445,551.817,0],"to":[0,0,0],"ti":[0,0,0]},{"t":46}]},"a":{"a":0,"k":[166.729,177.123,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[64.06,-74.453],[64.06,74.453],[-64.06,74.453]],"c":false}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.11],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p11_1_0p333_0"],"t":6,"s":[100],"e":[0]},{"t":46}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.11],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p11_1_0p333_0"],"t":26,"s":[100],"e":[53.3]},{"t":37}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim"},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":41.068},"lc":2,"lj":2,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[166.729,177.123],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"mn":"ADBE Vector Group"}],"ip":-2,"op":2238.23223223223,"st":6,"bm":0,"sr":1},{"ddd":0,"ind":3,"ty":4,"nm":"Full circle","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[540,540,0]},"a":{"a":0,"k":[357.67,357.67,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,140.833],[140.833,0],[0,-140.833],[-140.833,0]],"o":[[0,-140.833],[-140.833,0],[0,140.833],[140.833,0]],"v":[[255,0],[0,-255],[-255,0],[0,255]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.11],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p11_1_0p333_0"],"t":23,"s":[6],"e":[55]},{"t":43}],"ix":1},"e":{"a":0,"k":0,"ix":2},"o":{"a":0,"k":-103,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim"},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":41.068},"lc":2,"lj":2,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[357.67,357.67],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"mn":"ADBE Vector Group"}],"ip":23,"op":2205.23223223223,"st":-27,"bm":0,"sr":1},{"ddd":0,"ind":4,"ty":4,"nm":"Line circle transform","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[511.61,535.385,0]},"a":{"a":0,"k":[329.28,362.505,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-42.26,42.27],[131.25,-9.67],[0,-140.83],[-140.83,0]],"o":[[0,0],[77.9,-61.57],[-140.83,0],[0,140.83],[0,0]],"v":[[-28.61,118.375],[148.71,-45.265],[28.39,-250.165],[-226.61,4.835],[28.39,259.835]],"c":false}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[0],"e":[60]},{"i":{"x":[0.11],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p11_1_0p333_0"],"t":26,"s":[60],"e":[41]},{"t":46}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[12],"e":[100]},{"t":26}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim"},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":41.068},"lc":2,"lj":2,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[329.28,362.505],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"mn":"ADBE Vector Group"}],"ip":-2,"op":2238.23223223223,"st":6,"bm":0,"sr":1}]} -------------------------------------------------------------------------------- /samples/LottieDemo/Assets/play_button.json: -------------------------------------------------------------------------------- 1 | {"v":"4.5.5","fr":25,"ip":0,"op":56,"w":500,"h":500,"ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"playbutton contornos","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[250,250,0]},"a":{"a":0,"k":[250,250,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-0.333,-96.667],[0.333,96.667]],"c":false}},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group"},{"ty":"tm","s":{"a":0,"k":100,"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Recortar trazados 1","mn":"ADBE Vector Filter - Trim"},{"ty":"st","c":{"a":0,"k":[0.46,0,0.58,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":20},"lc":2,"lj":1,"ml":10,"nm":"Trazo 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[301.957,249.979],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":3,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-0.333,-96.666],[0.333,96.666]],"c":false}},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group"},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":0,"s":[100],"e":[0]},{"t":16}],"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Recortar trazados 1","mn":"ADBE Vector Filter - Trim"},{"ty":"st","c":{"a":0,"k":[0.46,0,0.58,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":20},"lc":2,"lj":1,"ml":10,"nm":"Trazo 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[187.922,250.373],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 2","np":3,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-0.059,-10.443],[0,0],[-9.225,6.341],[0,0],[7.625,5.027],[0,0]],"o":[[0,0],[0.059,10.5],[0,0],[7.512,-5.164],[0,0],[-9.312,-6.139]],"v":[[-82.975,-91.15],[-81.949,91.229],[-59.42,101.323],[75.521,8.577],[75.296,-11.892],[-60.671,-101.525]],"c":true}},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group"},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":0,"s":[100],"e":[0]},{"t":16}],"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Recortar trazados 1","mn":"ADBE Vector Filter - Trim"},{"ty":"st","c":{"a":0,"k":[0.46,0,0.58,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":20},"lc":1,"lj":1,"ml":10,"nm":"Trazo 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[270.581,250.025],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 3","np":3,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-100.747],[100.746,0],[0,100.746],[-100.747,0]],"o":[[0,100.746],[-100.747,0],[0,-100.747],[100.746,0]],"v":[[182.417,-0.001],[-0.001,182.417],[-182.417,-0.001],[-0.001,-182.417]],"c":true}},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group"},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":0,"s":[100],"e":[0]},{"t":16}],"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Recortar trazados 1","mn":"ADBE Vector Filter - Trim"},{"ty":"st","c":{"a":0,"k":[0.46,0,0.58,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":20},"lc":1,"lj":1,"ml":10,"nm":"Trazo 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[249.001,250.001],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 4","np":3,"mn":"ADBE Vector Group"}],"ip":0,"op":56,"st":0,"bm":0,"sr":1}]} -------------------------------------------------------------------------------- /samples/LottieDemo/Assets/playing.json: -------------------------------------------------------------------------------- 1 | {"v":"4.10.1","fr":29.9700012207031,"ip":0,"op":80.0000032584668,"w":150,"h":150,"nm":"Comp 1","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[77.5,76,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[84.229,84.229],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.709803938866,0.564705908298,0.372549027205,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.481],"y":[16926231.132]},"o":{"x":[0.402],"y":[0]},"n":["0p481_16926231p132_0p402_0"],"t":-0.131,"s":[3.988],"e":[3.988]},{"t":30.0000012219251}],"ix":5},"lc":2,"lj":1,"ml":4,"d":[{"n":"d","nm":"dash","v":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":30,"s":[0],"e":[140]},{"t":60.0000024438501}],"ix":1}},{"n":"g","nm":"gap","v":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":30,"s":[11],"e":[62]},{"t":60.0000024438501}],"ix":2}},{"n":"o","nm":"offset","v":{"a":0,"k":0,"ix":7}}],"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[-1.386,-1.386],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"n":["0p667_1_0p333_0","0p667_1_0p333_0"],"t":0,"s":[0,0],"e":[100,100]},{"t":30.0000012219251}],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0],"e":[100]},{"t":30.0000012219251}],"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":90.0000036657751,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"playing Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[79.5,75.5,0],"ix":2},"a":{"a":0,"k":[75,75,0],"ix":1},"s":{"a":0,"k":[59.333,59.333,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-19.803,-29.2],[19.803,-0.006],[-19.803,29.2],[-19.803,-2.215]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.709803938866,0.564705908298,0.372549027205,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":6,"ix":5},"lc":2,"lj":2,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[76.077,71.675],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":37,"s":[0],"e":[100]},{"t":58.0000023623884}],"ix":2},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":37,"s":[18],"e":[0]},{"t":58.0000023623884}],"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":37.0000015070409,"op":97.000003950891,"st":7.00000028511585,"bm":0}]} -------------------------------------------------------------------------------- /samples/LottieDemo/Assets/progress_bar 2.json: -------------------------------------------------------------------------------- 1 | {"v":"4.6.0","fr":29.9700012207031,"ip":0,"op":61.0000024845809,"w":400,"h":400,"nm":"Comp 1","ddd":0,"assets":[{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":0,"nm":"Pre-comp 2","refId":"comp_1","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.372,"y":0.995},"o":{"x":0.333,"y":0},"n":"0p372_0p995_0p333_0","t":-1,"s":[-63.707,132,0],"e":[508.793,132,0],"to":[95.4166641235352,0,0],"ti":[-95.4166641235352,0,0]},{"t":65.0000026475043}]},"a":{"a":0,"k":[200,200,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"w":400,"h":400,"ip":-1.00000004073083,"op":899.000036617021,"st":-1.00000004073083,"bm":0,"sr":1},{"ddd":0,"ind":2,"ty":0,"nm":"Pre-comp 2","refId":"comp_1","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.663,"y":0.994},"o":{"x":0.333,"y":0},"n":"0p663_0p994_0p333_0","t":47,"s":[-120.707,132,0],"e":[480.293,132,0],"to":[100.166664123535,0,0],"ti":[-100.166664123535,0,0]},{"t":120.0000048877}]},"a":{"a":0,"k":[200,200,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"w":400,"h":400,"ip":47.0000019143492,"op":947.000038572101,"st":47.0000019143492,"bm":0,"sr":1},{"ddd":0,"ind":3,"ty":4,"nm":"Master","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[198,192,0]},"a":{"a":0,"k":[146.5,5.5,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-2.858,0],[0,0],[0,-2.858],[2.859,0],[0,0],[0,2.858]],"o":[[0,0],[2.859,0],[0,2.858],[0,0],[-2.858,0],[0,-2.858]],"v":[[-140.825,-5.175],[140.825,-5.175],[146,0.001],[140.825,5.175],[-140.825,5.175],[-146,0.001]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[0.847,0.847,0.847,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[146.25,5.425],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"mn":"ADBE Vector Group"}],"ip":0,"op":900.000036657751,"st":0,"bm":0,"sr":1}]},{"id":"comp_1","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Layer 5/progressbar-final Outlines","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[296,260,0]},"a":{"a":0,"k":[76.5,5.5,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-2.858,0],[0,0],[0,-2.859],[2.859,0],[0,0],[0,2.857]],"o":[[0,0],[2.859,0],[0,2.857],[0,0],[-2.858,0],[0,-2.859]],"v":[[-70.825,-5.175],[70.825,-5.175],[76,0],[70.825,5.175],[-70.825,5.175],[-76,0]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[0,0.455,1,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[76.25,5.425],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"mn":"ADBE Vector Group"}],"ip":0,"op":900.000036657751,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":2,"ty":4,"nm":"Layer 4/progressbar-final Outlines","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[86,260,0]},"a":{"a":0,"k":[22.5,5.5,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-2.858,0],[0,0],[0,-2.859],[2.858,0],[0,0],[0,2.857]],"o":[[0,0],[2.858,0],[0,2.857],[0,0],[-2.858,0],[0,-2.859]],"v":[[-16.825,-5.175],[16.825,-5.175],[22,0],[16.825,5.175],[-16.825,5.175],[-22,0]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[0,0.455,1,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[22.25,5.425],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"mn":"ADBE Vector Group"}],"ip":0,"op":900.000036657751,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":3,"ty":4,"nm":"Layer 3/progressbar-final Outlines","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[164,260,0]},"a":{"a":0,"k":[40,5.5,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-2.858,0],[0,0],[0,-2.859],[2.858,0],[0,0],[0,2.857]],"o":[[0,0],[2.858,0],[0,2.857],[0,0],[-2.858,0],[0,-2.859]],"v":[[-34.325,-5.175],[34.325,-5.175],[39.5,0],[34.325,5.175],[-34.325,5.175],[-39.5,0]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[0,0.455,1,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[39.75,5.425],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"mn":"ADBE Vector Group"}],"ip":0,"op":900.000036657751,"st":0,"bm":0,"sr":1}]}],"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"Pre-comp 1","refId":"comp_0","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[202.032,208.014,0]},"a":{"a":0,"k":[200,200,0]},"s":{"a":0,"k":[99.979,100,100]}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[4.821,0],[0,0],[0,-4.821],[-4.821,0],[0,0],[0,2.771]],"o":[[0,0],[-4.821,0],[0,4.821],[0,0],[4.821,0],[0,-2.417]],"v":[[337.122,186.522],[59.625,186.49],[52.02,192.229],[59.708,197.449],[337.205,197.481],[343.914,191.917]],"c":true}},"o":{"a":0,"k":100},"x":{"a":0,"k":0},"nm":"Mask 2"}],"w":400,"h":400,"ip":0,"op":900.000036657751,"st":0,"bm":0,"sr":1}]} -------------------------------------------------------------------------------- /samples/LottieDemo/Assets/progress_bar.json: -------------------------------------------------------------------------------- 1 | {"v":"4.5.7","fr":48,"ip":0,"op":251,"w":1440,"h":1080,"ddd":0,"assets":[],"layers":[{"ddd":0,"ind":0,"ty":3,"nm":"Null 1","ks":{"o":{"a":0,"k":0},"r":{"a":0,"k":0},"p":{"a":0,"k":[720,540,0]},"a":{"a":0,"k":[0,0,0]},"s":{"a":1,"k":[{"i":{"x":[0.1,0.1,0.1],"y":[1,1,0.1]},"o":{"x":[0.25,0.25,0.25],"y":[0,0,0.25]},"n":["0p1_1_0p25_0","0p1_1_0p25_0","0p1_0p1_0p25_0p25"],"t":102.4,"s":[100,100,100],"e":[80,80,100]},{"t":177.599609375}]}},"ao":0,"ip":102.4,"op":179.2,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 4","parent":0,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.25],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p25_1_0p333_0"],"t":213,"s":[100],"e":[0]},{"t":240.19921875}]},"r":{"a":0,"k":0},"p":{"a":0,"k":[0,-4,0]},"a":{"a":0,"k":[4,0,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[570,570]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":1,"k":[{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p1_1_0p333_0"],"t":102.4,"s":[0],"e":[14]},{"t":129.599609375}]},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[4,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"mn":"ADBE Vector Group"},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.25],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p25_1_0p333_0"],"t":102.4,"s":[0],"e":[100]},{"t":177.599609375}],"ix":2},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":102.4,"s":[-51],"e":[0]},{"t":177.599609375}],"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim"},{"ty":"gr","it":[{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":12},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":1,"mn":"ADBE Vector Group"}],"ip":16,"op":251.2,"st":16,"bm":0,"sr":1},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 6","parent":0,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.25],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p25_1_0p333_0"],"t":213,"s":[100],"e":[0]},{"t":240.19921875}]},"r":{"a":0,"k":0},"p":{"a":0,"k":[5.333,-3.566,0]},"a":{"a":0,"k":[-33.792,12.274,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-341,13],[-165,13.16],[259,12.625]],"c":false},"x":"var $bm_rt;\n$bm_rt = thisComp.layer('Shape Layer 5').content('Shape 1').content('Path 1').path;"},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":14},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":14},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":1,"mn":"ADBE Vector Group"},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":16,"s":[0],"e":[3]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":25.6,"s":[3],"e":[8]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":33.6,"s":[8],"e":[15]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":48,"s":[15],"e":[20]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":54.4,"s":[20],"e":[35]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":67.49,"s":[35],"e":[70]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":80.582,"s":[70],"e":[80]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":91.49,"s":[80],"e":[100]},{"t":102.400390625}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim"}],"ip":16,"op":251.2,"st":16,"bm":0,"sr":1},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 5","parent":0,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p833_1_0p167_0"],"t":0,"s":[0],"e":[100]},{"i":{"x":[0.667],"y":[0.667]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_0p667_0p167_0p167"],"t":16,"s":[100],"e":[100]},{"i":{"x":[0.25],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p25_1_0p333_0"],"t":213,"s":[100],"e":[0]},{"t":240.19921875}]},"r":{"a":0,"k":0},"p":{"a":0,"k":[5.333,-3.566,0]},"a":{"a":0,"k":[-33.792,12.274,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.1,"y":1},"o":{"x":0.25,"y":0},"n":"0p1_1_0p25_0","t":102.4,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-341,13],[-165,13.16],[259,12.625]],"c":false}],"e":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-166.597,27.804],[-79.555,115.031],[127.156,-85.682]],"c":false}]},{"t":161.599609375}]},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"st","c":{"a":0,"k":[0.16,0.29,0.43,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":14},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":14},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":1,"mn":"ADBE Vector Group"}],"ip":0,"op":163.2,"st":16,"bm":0,"sr":1}]} -------------------------------------------------------------------------------- /samples/LottieDemo/Assets/simple_loader.json: -------------------------------------------------------------------------------- 1 | {"v":"4.6.3","fr":25,"ip":0,"op":15,"w":200,"h":200,"nm":"Graph Load","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 3","ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":6,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":9,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":12,"s":[100],"e":[0]},{"t":15}]},"r":{"a":0,"k":0},"p":{"a":0,"k":[128,100,0]},"a":{"a":0,"k":[3.481,-1.019,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[14.963,14.963]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":0,"k":[0.7921569,0.8156863,0.8352941,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[3.481,-1.019],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":15,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 1","ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":3,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":6,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":9,"s":[100],"e":[0]},{"t":12}]},"r":{"a":0,"k":0},"p":{"a":0,"k":[99.875,100,0]},"a":{"a":0,"k":[3.481,-1.019,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[14.963,14.963]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":0,"k":[0.7921569,0.8156863,0.8352941,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[3.481,-1.019],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":15,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 2","ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":3,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":6,"s":[100],"e":[0]},{"t":9}]},"r":{"a":0,"k":0},"p":{"a":0,"k":[71.75,100,0]},"a":{"a":0,"k":[3.481,-1.019,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[14.963,14.963]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":0,"k":[0.7921569,0.8156863,0.8352941,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[3.481,-1.019],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":15,"st":0,"bm":0,"sr":1}]} -------------------------------------------------------------------------------- /samples/LottieDemo/Assets/socar_logo.json: -------------------------------------------------------------------------------- 1 | {"v":"4.6.3","fr":30,"ip":0,"op":142,"w":300,"h":450,"nm":"Comp 1","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"S","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":34,"s":[117.976,236.069,0],"e":[117.976,254.069,0],"to":[0,3,0],"ti":[0,1,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":48,"s":[117.976,254.069,0],"e":[117.976,230.069,0],"to":[0,-1,0],"ti":[0,-0.00000418294258,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":66,"s":[117.976,230.069,0],"e":[117.976,254.069,0],"to":[0,0.00000418294258,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"n":"0p667_1_0p167_0","t":83,"s":[117.976,254.069,0],"e":[117.976,230.069,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":101,"s":[117.976,230.069,0],"e":[117.976,254.069,0],"to":[0,0,0],"ti":[0,-4.00000429153442,0]},{"t":123}]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[7.65,2.48],[-5,-25.48],[-5.42,-25],[43.33,29.64]],"o":[[-7,-5],[-13.91,-4.52],[5,25.48],[4.16,19.18],[0,0]],"v":[[67.33,11.91],[46.24,1.43],[9.33,27.91],[68.33,64.91],[0,78.27]],"c":false}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"st","c":{"a":0,"k":[0.007843,0.835294,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":22},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[90.361,90.361],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":32,"s":[0],"e":[100]},{"t":43}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim"}],"ip":0,"op":300,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":2,"ty":4,"nm":"Shape","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":16,"s":[150.098,225.104,0],"e":[158.39,153.504,0],"to":[0,8.4616117477417,0],"ti":[0,-20.8257160186768,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":23,"s":[158.39,153.504,0],"e":[150.098,303.104,0],"to":[0,28.8084774017334,0],"ti":[0,-11.7050552368164,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":34,"s":[150.098,303.104,0],"e":[150.098,318.104,0],"to":[0,20.1666660308838,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":47,"s":[150.098,318.104,0],"e":[150.098,298.104,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":65,"s":[150.098,298.104,0],"e":[150.098,318.104,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":84,"s":[150.098,318.104,0],"e":[150.098,298.104,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"n":"0p667_1_0p167_0","t":103,"s":[150.098,298.104,0],"e":[150.098,318.104,0],"to":[0,0,0],"ti":[0,0,0]},{"t":122}]},"a":{"a":0,"k":[92.366,117.719,0]},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,0.667]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0.333]},"n":["0p667_1_0p333_0","0p667_1_0p333_0","0p667_0p667_0p333_0p333"],"t":16,"s":[0,0,100],"e":[100,100,100]},{"t":34}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":29,"s":[{"i":[[0,0],[0.25,-0.01],[5.27,5.62],[4.793,8.634],[4.32,6.18],[3.43,10.73],[0.26,7.79],[-2.43,9.78],[-5.45,9.13],[-7.14,6.53],[-15.56,4.43],[-10.65,-0.35],[-15.45,-10.03],[-8.39,-11.55],[-2.22,-15.71],[2.526,-11.618],[4.523,-9.18],[7.53,-7.24],[5.987,-3.85],[12.375,-9.624],[8.43,0]],"o":[[-0.18,0.13],[-12.371,-3.603],[-8.633,-7.376],[-5.94,-4.66],[-6.49,-9.21],[-2.29,-7.45],[-0.38,-10.02],[2.5,-10.34],[4.92,-8.33],[11.92,-10.77],[10.28,-2.93],[18.21,0.59],[11.93,7.74],[9.35,12.89],[3.26,23.01],[-1.433,6.591],[-4.637,9.411],[-5.62,5.4],[-8.704,5.597],[-3.843,2.989],[-4.75,0]],"v":[[97.272,196.501],[81.65,193.911],[61.203,184.04],[39.253,161.549],[24.951,138.621],[11.86,104.999],[11.663,81.273],[17.715,55.154],[26.265,40.643],[47.702,20.714],[84.488,2.304],[104.98,0.05],[155.68,15.22],[180.533,33.95],[196.506,64.994],[198.371,106.081],[189.004,137.223],[167.362,166.64],[150.582,180.515],[137.375,189.018],[112.823,194.8]],"c":true}],"e":[{"i":[[0,0],[0.25,-0.01],[5.27,5.62],[12.03,9.37],[4.32,6.18],[3.43,10.73],[0.26,7.79],[-2.43,9.78],[-5.45,9.13],[-7.14,6.53],[-15.56,4.43],[-10.65,-0.35],[-15.45,-10.03],[-8.39,-11.55],[-2.22,-15.71],[10.77,-20.56],[4.48,-5.05],[7.53,-7.24],[4.68,-6.22],[5.12,-9.04],[8.43,0]],"o":[[-0.18,0.13],[-4.11,-6.51],[-10.37,-11.18],[-5.94,-4.66],[-6.49,-9.21],[-2.29,-7.45],[-0.38,-10.02],[2.5,-10.34],[4.92,-8.33],[11.92,-10.77],[10.28,-2.93],[18.21,0.59],[11.93,7.74],[9.35,12.89],[3.26,23.01],[-3.12,5.98],[-6.96,7.85],[-5.62,5.4],[-6.22,8.27],[-1.87,3.3],[-4.75,0]],"v":[[93.18,249.71],[81.65,228.02],[67.56,209.79],[33.91,178.91],[18.94,162.08],[3.98,132],[0.15,109.04],[2.4,79.22],[14.39,49.84],[32.57,27.42],[73.57,4.22],[104.98,0.05],[155.68,15.22],[186.57,43.66],[203.3,86.79],[192.04,152.14],[180.29,168.46],[157.89,190.39],[142.82,208.21],[125.1,233.7],[104.98,260.63]],"c":true}]},{"t":35}]},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[0.681,0.373],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":23,"s":[63.361,90.333],"e":[90.361,90.333]},{"t":35}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":300,"st":0,"bm":0,"sr":1}]} -------------------------------------------------------------------------------- /samples/LottieDemo/Assets/swipe_right_indicator.json: -------------------------------------------------------------------------------- 1 | {"v":"4.6.0","fr":25,"ip":0,"op":42,"w":128,"h":60,"nm":"Comp 1","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"arrows Outlines 3","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[90,30,0]},"a":{"a":0,"k":[256,256,0]},"s":{"a":0,"k":[32,32,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-6.695,-6.47],[0,0],[-6.567,6.389],[0,0],[6.597,6.389],[0,0],[6.663,-6.47],[0,0],[-6.469,-6.292],[0,0],[6.5,-6.291]],"o":[[-6.566,6.355],[0,0],[6.597,6.403],[0,0],[6.564,-6.373],[0,0],[-6.567,-6.371],[0,0],[-6.631,6.406],[0,0],[6.566,6.372],[0,0]],"v":[[-46.06,58.31],[-45.962,81.454],[-48,79.479],[-24.13,79.543],[46.059,11.557],[46.059,-11.54],[-24.13,-79.528],[-48,-79.462],[-45.962,-81.437],[-46.06,-58.293],[2.199,-11.523],[2.199,11.54]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[1,1,1,1]},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":20,"s":[50],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":25,"s":[100],"e":[50]},{"t":42}]},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[254.934,253.66],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"mn":"ADBE Vector Group"}],"ip":0,"op":250,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":2,"ty":4,"nm":"arrows Outlines 2","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[90,30,0]},"a":{"a":0,"k":[256,256,0]},"s":{"a":0,"k":[32,32,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-6.695,-6.47],[0,0],[-6.567,6.389],[0,0],[6.597,6.389],[0,0],[6.663,-6.47],[0,0],[-6.469,-6.292],[0,0],[6.5,-6.291]],"o":[[-6.566,6.355],[0,0],[6.597,6.403],[0,0],[6.564,-6.373],[0,0],[-6.567,-6.371],[0,0],[-6.631,6.406],[0,0],[6.566,6.372],[0,0]],"v":[[-46.06,58.31],[-45.962,81.454],[-48,79.479],[-24.13,79.543],[46.059,11.557],[46.059,-11.54],[-24.13,-79.528],[-48,-79.462],[-45.962,-81.437],[-46.06,-58.293],[2.199,-11.523],[2.199,11.54]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[1,1,1,1]},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":13,"s":[50],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":25,"s":[100],"e":[50]},{"t":36}]},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[174.934,253.66],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"mn":"ADBE Vector Group"}],"ip":0,"op":250,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":3,"ty":4,"nm":"arrows Outlines","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[64,30,0]},"a":{"a":0,"k":[256,256,0]},"s":{"a":0,"k":[32,32,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-6.695,-6.47],[0,0],[-6.567,6.389],[0,0],[6.597,6.389],[0,0],[6.663,-6.47],[0,0],[-6.469,-6.292],[0,0],[6.5,-6.291]],"o":[[-6.566,6.355],[0,0],[6.597,6.403],[0,0],[6.564,-6.373],[0,0],[-6.567,-6.371],[0,0],[-6.631,6.406],[0,0],[6.566,6.372],[0,0]],"v":[[-46.06,58.31],[-45.962,81.454],[-48,79.479],[-24.13,79.543],[46.059,11.557],[46.059,-11.54],[-24.13,-79.528],[-48,-79.462],[-45.962,-81.437],[-46.06,-58.293],[2.199,-11.523],[2.199,11.54]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[1,1,1,1]},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[50],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":25,"s":[100],"e":[50]},{"t":32}]},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[174.934,253.66],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"mn":"ADBE Vector Group"}],"ip":0,"op":250,"st":0,"bm":0,"sr":1}]} -------------------------------------------------------------------------------- /samples/LottieDemo/Assets/switch_loop.json: -------------------------------------------------------------------------------- 1 | {"v":"4.6.6","fr":24,"ip":0,"op":48,"w":300,"h":300,"nm":"Icon 4","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Switch","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[150,150,0]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[75,75,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[50,50]},"p":{"a":1,"k":[{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"n":"0p5_1_0p5_0","t":0,"s":[0,100],"e":[0,-100],"to":[0,-33.3333320617676],"ti":[0,0]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"n":"0p5_1_0p5_0","t":24,"s":[0,-100],"e":[0,100],"to":[0,0],"ti":[0,-33.3333320617676]},{"t":48}]},"nm":"Ellipse Path 2","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.5],"y":[1]},"o":{"x":[0.5],"y":[0]},"n":["0p5_1_0p5_0"],"t":0,"s":[0.5176471,0.5176471,0.5176471,1],"e":[0.9686275,0.6773018,0.3646597,1]},{"i":{"x":[0.5],"y":[1]},"o":{"x":[0.5],"y":[0]},"n":["0p5_1_0p5_0"],"t":24,"s":[0.9686275,0.6773018,0.3646597,1],"e":[0.5176471,0.5176471,0.5176471,1]},{"t":48}]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 2","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[75,275]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":125},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect"},{"ty":"st","c":{"a":0,"k":[0.5176471,0.5176471,0.5176471,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":20},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[350,350]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":0},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect"},{"ty":"st","c":{"a":0,"k":[0.5176471,0.5176471,0.5176471,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":20},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":2,"cix":2,"ix":3,"mn":"ADBE Vector Group"}],"ip":0,"op":49,"st":0,"bm":0,"sr":1}]} -------------------------------------------------------------------------------- /samples/LottieDemo/Assets/timer_(3_second_loop).json: -------------------------------------------------------------------------------- 1 | {"v":"4.6.6","fr":24,"ip":0,"op":72,"w":500,"h":500,"nm":"Comp 2","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 2","ks":{"o":{"a":0,"k":100},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0],"e":[1080]},{"t":72}]},"p":{"a":0,"k":[250,250,0]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"rc","d":1,"s":{"a":0,"k":[150,50]},"p":{"a":0,"k":[50,0]},"r":{"a":0,"k":170},"nm":"Rectangle Path 2","mn":"ADBE Vector Shape - Rect"},{"ty":"fl","c":{"a":0,"k":[0.372549,0.9254902,0.6717879,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"}],"ip":0,"op":73,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 3","ks":{"o":{"a":0,"k":100},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0],"e":[360]},{"t":72}]},"p":{"a":0,"k":[250,250,0]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"rc","d":1,"s":{"a":0,"k":[50,50]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":170},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect"},{"ty":"rc","d":1,"s":{"a":0,"k":[250,50]},"p":{"a":0,"k":[100,0]},"r":{"a":0,"k":170},"nm":"Rectangle Path 2","mn":"ADBE Vector Shape - Rect"},{"ty":"fl","c":{"a":0,"k":[0.9254902,0.372549,0.372549,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"}],"ip":0,"op":73,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 1","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[250,250,0]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"d":1,"ty":"el","s":{"a":0,"k":[470,470]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"st","c":{"a":0,"k":[0.9254902,0.3738254,0.3738254,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":25},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"}],"ip":0,"op":73,"st":0,"bm":0,"sr":1}]} -------------------------------------------------------------------------------- /samples/LottieDemo/Assets/trail_loading.json: -------------------------------------------------------------------------------- 1 | {"v":"4.6.8","fr":60,"ip":0,"op":106,"w":500,"h":500,"nm":"Comp 1","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 5","ks":{"o":{"a":0,"k":100},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":20,"s":[0],"e":[360]},{"t":110}]},"p":{"a":0,"k":[251,250,0]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[10,10]},"p":{"a":0,"k":[0,-100]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"st","c":{"a":0,"k":[0,0,0,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":0},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"fl","c":{"a":0,"k":[0,0.7294118,1,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":20,"op":620,"st":20,"bm":0,"sr":1},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 4","ks":{"o":{"a":0,"k":100},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":15,"s":[0],"e":[360]},{"t":105}]},"p":{"a":0,"k":[251,250,0]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[20,20]},"p":{"a":0,"k":[0,-100]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"st","c":{"a":0,"k":[0,0,0,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":0},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"fl","c":{"a":0,"k":[0,0.7294118,1,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":15,"op":615,"st":15,"bm":0,"sr":1},{"ddd":0,"ind":4,"ty":4,"nm":"Shape Layer 3","ks":{"o":{"a":0,"k":100},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":10,"s":[0],"e":[360]},{"t":100}]},"p":{"a":0,"k":[251,250,0]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[30,30]},"p":{"a":0,"k":[0,-100]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"st","c":{"a":0,"k":[0,0,0,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":0},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"fl","c":{"a":0,"k":[0,0.7294118,1,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":10,"op":610,"st":10,"bm":0,"sr":1},{"ddd":0,"ind":5,"ty":4,"nm":"Shape Layer 2","ks":{"o":{"a":0,"k":100},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":5,"s":[0],"e":[360]},{"t":95}]},"p":{"a":0,"k":[251,250,0]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[40,40]},"p":{"a":0,"k":[0,-100]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"st","c":{"a":0,"k":[0,0,0,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":0},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"fl","c":{"a":0,"k":[0,0.7294118,1,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":5,"op":605,"st":5,"bm":0,"sr":1},{"ddd":0,"ind":6,"ty":4,"nm":"Shape Layer 1","ks":{"o":{"a":0,"k":100},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":0,"s":[0],"e":[360]},{"t":90}]},"p":{"a":0,"k":[250,250,0]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"n":["0p667_1_0p333_0","0p667_1_0p333_0"],"t":0,"s":[50,50],"e":[40,40]},{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"n":["0p667_1_0p333_0","0p667_1_0p333_0"],"t":84,"s":[40,40],"e":[50,50]},{"t":100}]},"p":{"a":0,"k":[0,-100]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"st","c":{"a":0,"k":[0,0,0,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":0},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"fl","c":{"a":0,"k":[0,0.7294118,1,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":600,"st":0,"bm":0,"sr":1}]} -------------------------------------------------------------------------------- /samples/LottieDemo/LottieDemo.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | Library 4 | net9.0 5 | enable 6 | False 7 | copyused 8 | true 9 | LottieDemo 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /samples/LottieDemo/ViewModels/AssetViewModel.cs: -------------------------------------------------------------------------------- 1 | using CommunityToolkit.Mvvm.ComponentModel; 2 | 3 | namespace LottieDemo.ViewModels; 4 | 5 | public partial class AssetViewModel : ObservableObject 6 | { 7 | [ObservableProperty] private string _name; 8 | [ObservableProperty] private string _path; 9 | 10 | public AssetViewModel(string name, string path) 11 | { 12 | _name = name; 13 | _path = path; 14 | } 15 | 16 | public override string ToString() => Name; 17 | } 18 | -------------------------------------------------------------------------------- /samples/LottieDemo/ViewModels/MainViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Collections.ObjectModel; 4 | using System.IO; 5 | using System.Linq; 6 | using Avalonia; 7 | using Avalonia.Platform; 8 | using CommunityToolkit.Mvvm.ComponentModel; 9 | using CommunityToolkit.Mvvm.Input; 10 | 11 | namespace LottieDemo.ViewModels; 12 | 13 | public partial class MainViewModel : ObservableObject 14 | { 15 | private readonly ObservableCollection _assets; 16 | 17 | [ObservableProperty] private AssetViewModel? _selectedAsset; 18 | [ObservableProperty] private bool _enableCheckerboard; 19 | 20 | public MainViewModel() 21 | { 22 | var assets = AssetLoader 23 | .GetAssets(new Uri("avares://LottieDemo/Assets"), new Uri("avares://LottieDemo/")) 24 | .Where(x => x.AbsolutePath.EndsWith(".json", StringComparison.OrdinalIgnoreCase)) 25 | .Select(x=> new AssetViewModel(Path.GetFileName(x.AbsoluteUri), x.AbsoluteUri)); 26 | 27 | _assets = new ObservableCollection(assets); 28 | 29 | _selectedAsset = _assets.FirstOrDefault(x => x.Path.Contains("LottieLogo1.json")); 30 | } 31 | 32 | public IReadOnlyList Assets => _assets; 33 | 34 | public void Add(string path) 35 | { 36 | _assets.Add(new AssetViewModel(Path.GetFileName(path), path)); 37 | } 38 | 39 | [RelayCommand] 40 | private void Previous() 41 | { 42 | if (SelectedAsset is { } && _assets.Count > 1) 43 | { 44 | var index = _assets.IndexOf(SelectedAsset); 45 | if (index == 0) 46 | { 47 | SelectedAsset = _assets[^1]; 48 | } 49 | else if (index > 0) 50 | { 51 | SelectedAsset = _assets[index - 1]; 52 | } 53 | } 54 | } 55 | 56 | [RelayCommand] 57 | private void Next() 58 | { 59 | if (SelectedAsset is { } && _assets.Count > 1) 60 | { 61 | var index = _assets.IndexOf(SelectedAsset); 62 | if (index == _assets.Count - 1) 63 | { 64 | SelectedAsset = _assets[0]; 65 | } 66 | else if (index >= 0 && index < _assets.Count - 1) 67 | { 68 | SelectedAsset = _assets[index + 1]; 69 | } 70 | } 71 | } 72 | } 73 | -------------------------------------------------------------------------------- /samples/LottieDemo/Views/MainView.axaml: -------------------------------------------------------------------------------- 1 |  11 | 12 | 13 | 14 | 15 | M2.75 20a1 1 0 1 0 2 0V4a1 1 0 1 0-2 0v16ZM20.75 19.053c0 1.424-1.612 2.252-2.77 1.422L7.51 12.968a1.75 1.75 0 0 1 .075-2.895l10.47-6.716c1.165-.748 2.695.089 2.695 1.473v14.223Z 16 | M21 4a1 1 0 1 0-2 0v16a1 1 0 1 0 2 0V4ZM3 4.947c0-1.424 1.612-2.252 2.77-1.422l10.47 7.507a1.75 1.75 0 0 1-.075 2.895l-10.47 6.716C4.53 21.39 3 20.554 3 19.17V4.947Z 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 50 | 64 | 65 | 68 | 69 | 70 | 74 | 80 | 82 | 83 | 84 | 85 | 86 | -------------------------------------------------------------------------------- /samples/LottieDemo/Views/MainView.axaml.cs: -------------------------------------------------------------------------------- 1 | using System.Linq; 2 | using Avalonia; 3 | using Avalonia.Controls; 4 | using Avalonia.Input; 5 | using LottieDemo.ViewModels; 6 | 7 | namespace LottieDemo.Views; 8 | 9 | public partial class MainView : UserControl 10 | { 11 | public MainView() 12 | { 13 | InitializeComponent(); 14 | 15 | AddHandler(DragDrop.DragOverEvent, DragOver); 16 | AddHandler(DragDrop.DropEvent, Drop); 17 | } 18 | 19 | protected override void OnAttachedToVisualTree(VisualTreeAttachmentEventArgs e) 20 | { 21 | base.OnAttachedToVisualTree(e); 22 | Focus(); 23 | } 24 | 25 | private void DragOver(object? sender, DragEventArgs e) 26 | { 27 | e.DragEffects &= DragDropEffects.Copy | DragDropEffects.Link; 28 | 29 | if (!e.Data.Contains(DataFormats.Files)) 30 | { 31 | e.DragEffects = DragDropEffects.None; 32 | } 33 | } 34 | 35 | private void Drop(object? sender, DragEventArgs e) 36 | { 37 | if (!e.Data.Contains(DataFormats.Files)) 38 | { 39 | return; 40 | } 41 | 42 | if (DataContext is not MainViewModel vm) 43 | { 44 | return; 45 | } 46 | 47 | var paths = e.Data.GetFileNames()?.ToList(); 48 | if (paths is null) 49 | { 50 | return; 51 | } 52 | 53 | for (var i = 0; i < paths.Count; i++) 54 | { 55 | var path = paths[i]; 56 | if (string.IsNullOrWhiteSpace(path)) 57 | { 58 | continue; 59 | } 60 | 61 | vm.Add(path); 62 | 63 | if (i == 0) 64 | { 65 | vm.SelectedAsset = vm.Assets[^1]; 66 | } 67 | } 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /samples/LottieDemo/Views/MainWindow.axaml: -------------------------------------------------------------------------------- 1 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /samples/LottieDemo/Views/MainWindow.axaml.cs: -------------------------------------------------------------------------------- 1 | using Avalonia; 2 | using Avalonia.Controls; 3 | 4 | namespace LottieDemo.Views; 5 | 6 | public partial class MainWindow : Window 7 | { 8 | public MainWindow() 9 | { 10 | InitializeComponent(); 11 | #if DEBUG 12 | this.AttachDevTools(); 13 | #endif 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /samples/LottieToSvg/App.axaml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /samples/LottieToSvg/App.axaml.cs: -------------------------------------------------------------------------------- 1 | using Avalonia; 2 | using Avalonia.Controls.ApplicationLifetimes; 3 | using Avalonia.Markup.Xaml; 4 | 5 | namespace LottieToSvg; 6 | 7 | public partial class App : Application 8 | { 9 | public override void Initialize() 10 | { 11 | AvaloniaXamlLoader.Load(this); 12 | } 13 | 14 | public override void OnFrameworkInitializationCompleted() 15 | { 16 | if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop) 17 | { 18 | desktop.MainWindow = new MainWindow(); 19 | } 20 | 21 | base.OnFrameworkInitializationCompleted(); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /samples/LottieToSvg/LottieToSvg.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | WinExe 4 | net9.0 5 | enable 6 | copyused 7 | true 8 | false 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /samples/LottieToSvg/MainWindow.axaml: -------------------------------------------------------------------------------- 1 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /samples/LottieToSvg/MainWindow.axaml.cs: -------------------------------------------------------------------------------- 1 | using System.IO; 2 | using System.Linq; 3 | using System.Runtime.InteropServices; 4 | using System.Threading.Tasks; 5 | using Avalonia; 6 | using Avalonia.Controls; 7 | using Avalonia.Input; 8 | using SkiaSharp; 9 | 10 | namespace LottieToSvg; 11 | 12 | public partial class MainWindow : Window 13 | { 14 | public MainWindow() 15 | { 16 | InitializeComponent(); 17 | #if DEBUG 18 | this.AttachDevTools(); 19 | #endif 20 | AddHandler(DragDrop.DragOverEvent, DragOver); 21 | AddHandler(DragDrop.DropEvent, Drop); 22 | } 23 | 24 | private void DragOver(object? sender, DragEventArgs e) 25 | { 26 | e.DragEffects &= DragDropEffects.Copy | DragDropEffects.Link; 27 | 28 | if (!e.Data.Contains(DataFormats.Files)) 29 | { 30 | e.DragEffects = DragDropEffects.None; 31 | } 32 | } 33 | 34 | private async void Drop(object? sender, DragEventArgs e) 35 | { 36 | if (!e.Data.Contains(DataFormats.Files)) 37 | { 38 | return; 39 | } 40 | 41 | var paths = e.Data.GetFileNames()?.ToList(); 42 | if (paths is null || paths.Count <= 0) 43 | { 44 | return; 45 | } 46 | 47 | var outputPath = OutputPath.Text; 48 | 49 | if (string.IsNullOrWhiteSpace(outputPath)) 50 | { 51 | if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) 52 | { 53 | outputPath = "c:\\Temp\\"; 54 | } 55 | 56 | if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX)) 57 | { 58 | outputPath = "/Users/wieslawsoltes/Downloads/Temp"; 59 | } 60 | } 61 | 62 | if (outputPath is null) 63 | { 64 | return; 65 | } 66 | 67 | await Task.Run(() => 68 | { 69 | foreach (var path in paths) 70 | { 71 | Convert(path, outputPath); 72 | } 73 | }); 74 | } 75 | 76 | private void CreateSvg(SkiaSharp.Skottie.Animation animation, string inputFilePath, string outputPath) 77 | { 78 | var inPoint = animation.InPoint; 79 | var outPoint = animation.OutPoint; 80 | var dst = new SKRect(0, 0, animation.Size.Width, animation.Size.Height); 81 | 82 | for (var t = inPoint; t <= outPoint; t += 1d) 83 | { 84 | var outputFileExtension = "svg"; 85 | var outputFileName = $"{Path.GetFileNameWithoutExtension(inputFilePath)}.{t:0000}.{outputFileExtension}"; 86 | var outputFilePath = Path.Combine(outputPath, outputFileName); 87 | 88 | using var outputStream = File.Create(outputFilePath); 89 | using var outputManagedStream = new SKManagedWStream(outputStream); 90 | 91 | var bounds = SKRect.Create(animation.Size); 92 | using var canvas = SKSvgCanvas.Create(bounds, outputManagedStream); 93 | 94 | animation.SeekFrame(t); 95 | animation.Render(canvas, dst); 96 | } 97 | } 98 | 99 | private void Convert(string inputFilePath, string outputPath) 100 | { 101 | using var inputStream = File.OpenRead(inputFilePath); 102 | using var inputManagedStream = new SKManagedStream(inputStream); 103 | 104 | if (!SkiaSharp.Skottie.Animation.TryCreate(inputManagedStream, out var animation)) 105 | { 106 | return; 107 | } 108 | 109 | CreateSvg(animation, inputFilePath, outputPath); 110 | } 111 | } 112 | -------------------------------------------------------------------------------- /samples/LottieToSvg/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Avalonia; 3 | 4 | namespace LottieToSvg; 5 | 6 | class Program 7 | { 8 | [STAThread] 9 | public static void Main(string[] args) => BuildAvaloniaApp() 10 | .StartWithClassicDesktopLifetime(args); 11 | 12 | public static AppBuilder BuildAvaloniaApp() 13 | => AppBuilder.Configure() 14 | .UsePlatformDetect() 15 | .LogToTrace(); 16 | } 17 | -------------------------------------------------------------------------------- /src/Lottie/Lottie.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | Library 4 | netstandard2.0;net6.0;net8.0 5 | enable 6 | True 7 | copyused 8 | true 9 | Avalonia.Skia.Lottie 10 | 11 | 12 | An lottie animation player control for Avalonia. 13 | Lottie 14 | MIT 15 | lottie;animation;player;vector graphics;rendering;2d;graphics;geometry;shapes;skiasharp;skia;skottie;control;avalonia;avaloniaui 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /src/Lottie/LottieCommand.cs: -------------------------------------------------------------------------------- 1 | namespace Avalonia.Skia.Lottie; 2 | 3 | internal enum LottieCommand 4 | { 5 | Start, 6 | Stop, 7 | Update, 8 | Dispose 9 | } 10 | -------------------------------------------------------------------------------- /src/Lottie/LottieCompositionCustomVisualHandler.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Avalonia.Media; 3 | using Avalonia.Platform; 4 | using Avalonia.Rendering.Composition; 5 | using SkiaSharp; 6 | 7 | namespace Avalonia.Skia.Lottie; 8 | 9 | internal class LottieCompositionCustomVisualHandler : CompositionCustomVisualHandler 10 | { 11 | private TimeSpan _primaryTimeElapsed, _animationElapsed; 12 | private TimeSpan? _lastServerTime; 13 | private bool _running; 14 | private SkiaSharp.Skottie.Animation? _animation; 15 | private Stretch? _stretch; 16 | private StretchDirection? _stretchDirection; 17 | private SkiaSharp.SceneGraph.InvalidationController? _ic; 18 | private readonly object _sync = new(); 19 | private int _repeatCount; 20 | private int _count; 21 | 22 | public override void OnMessage(object message) 23 | { 24 | if (message is not LottiePayload msg) 25 | { 26 | return; 27 | } 28 | 29 | switch (msg) 30 | { 31 | case 32 | { 33 | LottieCommand: LottieCommand.Start, 34 | Animation: { } an, 35 | Stretch: { } st, 36 | StretchDirection: { } sd, 37 | RepeatCount: { } rp 38 | }: 39 | { 40 | _running = true; 41 | _lastServerTime = null; 42 | _stretch = st; 43 | _stretchDirection = sd; 44 | _animation = an; 45 | _repeatCount = rp; 46 | _count = 0; 47 | _animationElapsed = TimeSpan.Zero; 48 | RegisterForNextAnimationFrameUpdate(); 49 | break; 50 | } 51 | case 52 | { 53 | LottieCommand: LottieCommand.Update, 54 | Stretch: { } st, 55 | StretchDirection: { } sd 56 | }: 57 | { 58 | _stretch = st; 59 | _stretchDirection = sd; 60 | RegisterForNextAnimationFrameUpdate(); 61 | break; 62 | } 63 | case 64 | { 65 | LottieCommand: LottieCommand.Stop 66 | }: 67 | { 68 | _running = false; 69 | _animationElapsed = TimeSpan.Zero; 70 | _count = 0; 71 | break; 72 | } 73 | case 74 | { 75 | LottieCommand: LottieCommand.Dispose 76 | }: 77 | { 78 | DisposeImpl(); 79 | break; 80 | } 81 | } 82 | } 83 | 84 | public override void OnAnimationFrameUpdate() 85 | { 86 | if (!_running) 87 | return; 88 | 89 | 90 | if (_repeatCount == 0 || (_repeatCount > 0 && _count >= _repeatCount)) 91 | { 92 | _running = false; 93 | _animationElapsed = TimeSpan.Zero; 94 | } 95 | 96 | Invalidate(); 97 | RegisterForNextAnimationFrameUpdate(); 98 | } 99 | 100 | private void DisposeImpl() 101 | { 102 | lock (_sync) 103 | { 104 | _animation?.Dispose(); 105 | _animation = null; 106 | _ic?.End(); 107 | _ic?.Dispose(); 108 | _ic = null; 109 | } 110 | } 111 | 112 | private double GetFrameTime() 113 | { 114 | if (_animation is null) 115 | { 116 | return 0f; 117 | } 118 | 119 | var frameTime = _animationElapsed.TotalSeconds; 120 | 121 | if (_animationElapsed.TotalSeconds > _animation.Duration.TotalSeconds) 122 | { 123 | _animationElapsed = TimeSpan.Zero; 124 | _ic?.End(); 125 | _ic?.Begin(); 126 | _count++; 127 | } 128 | 129 | return frameTime; 130 | } 131 | 132 | private void Draw(SKCanvas canvas) 133 | { 134 | var animation = _animation; 135 | if (animation is null) 136 | { 137 | return; 138 | } 139 | 140 | if (_ic is null) 141 | { 142 | _ic = new SkiaSharp.SceneGraph.InvalidationController(); 143 | _ic.Begin(); 144 | } 145 | 146 | var ic = _ic; 147 | 148 | if (_repeatCount == 0) 149 | { 150 | return; 151 | } 152 | 153 | var t = GetFrameTime(); 154 | if (!_running) 155 | { 156 | t = (float)animation.Duration.TotalSeconds; 157 | } 158 | 159 | var dst = new SKRect(0, 0, animation.Size.Width, animation.Size.Height); 160 | 161 | animation.SeekFrameTime(t, ic); 162 | canvas.Save(); 163 | animation.Render(canvas, dst); 164 | canvas.Restore(); 165 | 166 | ic.Reset(); 167 | } 168 | 169 | public override void OnRender(ImmediateDrawingContext context) 170 | { 171 | lock (_sync) 172 | { 173 | if (_running) 174 | { 175 | if (_lastServerTime.HasValue) 176 | { 177 | var delta = (CompositionNow - _lastServerTime.Value); 178 | _primaryTimeElapsed += delta; 179 | _animationElapsed += delta; 180 | } 181 | 182 | _lastServerTime = CompositionNow; 183 | } 184 | 185 | if (_animation is not { } an 186 | || _stretch is not { } st 187 | || _stretchDirection is not { } sd) 188 | { 189 | return; 190 | } 191 | 192 | 193 | var leaseFeature = context.TryGetFeature(); 194 | if (leaseFeature is null) 195 | { 196 | return; 197 | } 198 | 199 | var rb = GetRenderBounds(); 200 | 201 | var viewPort = new Rect(rb.Size); 202 | var sourceSize = new Size(an.Size.Width, an.Size.Height); 203 | if (sourceSize.Width <= 0 || sourceSize.Height <= 0) 204 | { 205 | return; 206 | } 207 | 208 | var scale = st.CalculateScaling(rb.Size, sourceSize, sd); 209 | var scaledSize = sourceSize * scale; 210 | var destRect = viewPort 211 | .CenterRect(new Rect(scaledSize)) 212 | .Intersect(viewPort); 213 | var sourceRect = new Rect(sourceSize) 214 | .CenterRect(new Rect(destRect.Size / scale)); 215 | 216 | var bounds = SKRect.Create(new SKPoint(), an.Size); 217 | var scaleMatrix = Matrix.CreateScale( 218 | destRect.Width / sourceRect.Width, 219 | destRect.Height / sourceRect.Height); 220 | var translateMatrix = Matrix.CreateTranslation( 221 | -sourceRect.X + destRect.X - bounds.Top, 222 | -sourceRect.Y + destRect.Y - bounds.Left); 223 | 224 | using (context.PushClip(destRect)) 225 | using (context.PushPostTransform(translateMatrix * scaleMatrix)) 226 | { 227 | using var lease = leaseFeature.Lease(); 228 | var canvas = lease?.SkCanvas; 229 | if (canvas is null) 230 | { 231 | return; 232 | } 233 | Draw(canvas); 234 | } 235 | } 236 | } 237 | } 238 | -------------------------------------------------------------------------------- /src/Lottie/LottiePayload.cs: -------------------------------------------------------------------------------- 1 | using Avalonia.Media; 2 | 3 | namespace Avalonia.Skia.Lottie; 4 | 5 | internal record struct LottiePayload( 6 | LottieCommand LottieCommand, 7 | SkiaSharp.Skottie.Animation? Animation = null, 8 | Stretch? Stretch = null, 9 | StretchDirection? StretchDirection = null, 10 | int? RepeatCount = null); 11 | -------------------------------------------------------------------------------- /src/Lottie/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using Avalonia.Metadata; 2 | 3 | [assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Skia.Lottie")] 4 | -------------------------------------------------------------------------------- /src/Lottie/ServiceProviderExtensions.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Avalonia.Markup.Xaml; 3 | 4 | namespace Avalonia.Skia.Lottie; 5 | 6 | internal static class ServiceProviderExtensions 7 | { 8 | public static T GetService(this IServiceProvider sp) 9 | => (T)sp?.GetService(typeof(T))!; 10 | 11 | public static Uri GetContextBaseUri(this IServiceProvider ctx) 12 | => ctx.GetService().BaseUri; 13 | } 14 | --------------------------------------------------------------------------------