Giter Site home page Giter Site logo

chenqingspring / ng-lottie Goto Github PK

View Code? Open in Web Editor NEW
338.0 14.0 100.0 6.68 MB

Render After Effects animations on Angular based on lottie-web

License: MIT License

TypeScript 33.05% JavaScript 66.95%
angular2 angular-module lottie after-effects lottie-animation angular angular4 ionic3 ionic bodymovin

ng-lottie's Introduction

Lottie Animation View for Angular (React, Vue)

Build Status npm version GitHub issues GitHub stars GitHub license

Demo

https://chenqingspring.github.io/ng-lottie/demo/

Renamed from lottie-angular2 after angular4 supported

Wapper of bodymovin.js

bodymovin is Adobe After Effects plugin for exporting animations as JSON, also it provide bodymovin.js for vender them as svg/canvas/html.

Why Lottie?

Flexible After Effects features

We currently support solids, shape layers, masks, alpha mattes, trim paths, and dash patterns. And we’ll be adding new features on a regular basis.

Manipulate your animation any way you like

You can go forward, backward, and most importantly you can program your animation to respond to any interaction.

Small file sizes

Bundle vector animations within your app without having to worry about multiple dimensions or large file sizes. Alternatively, you can decouple animation files from your app’s code entirely by loading them from a JSON API.

Learn morehttp://airbnb.design/lottie/

Looking for lottie files › https://www.lottiefiles.com/

Installation

Install through npm:

npm install --save ng-lottie

Then include in your apps module:

import { Component, NgModule } from '@angular/core';
import { LottieAnimationViewModule } from 'ng-lottie';

@NgModule({
  imports: [
    LottieAnimationViewModule.forRoot()
  ]
})
export class MyModule {}

Finally use in one of your apps components:

import {Component} from '@angular/core';

@Component({
    selector: 'lottie-animation-view-demo-app',
    template: ` <lottie-animation-view
                    [options]="lottieConfig"
                    [width]="300"
                    [height]="600"
                    (animCreated)="handleAnimation($event)">
              </lottie-animation-view>
              <div id="player">
                <p>Speed: x{{animationSpeed}}</p>
                <div class="range-container">
                  <input #range type="range" value="1" min="0" max="3" step="0.5"
                    (change)="setSpeed(range.value)">
                </div>
                <button (click)="stop()">stop</button>
                <button (click)="pause()">pause</button>
                <button (click)="play()">play</button>
              </div>`
})

export class DemoComponent {

    public lottieConfig: Object;
    private anim: any;
    private animationSpeed: number = 1;

    constructor() {
        this.lottieConfig = {
            path: 'assets/pinjump.json',
            renderer: 'canvas',
            autoplay: true,
            loop: true
        };
    }

    handleAnimation(anim: any) {
        this.anim = anim;
    }

    stop() {
        this.anim.stop();
    }

    play() {
        this.anim.play();
    }

    pause() {
        this.anim.pause();
    }

    setSpeed(speed: number) {
        this.animationSpeed = speed;
        this.anim.setSpeed(speed);
    }

}

Related Projects

Contribution

Your contributions and suggestions are heartily welcome.

License

MIT

ng-lottie's People

Contributors

chenqingspring avatar damienwebdev avatar digirigo avatar timdoes avatar yannbf avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ng-lottie's Issues

How to switch animation after initialization?

Hello.
I'm trying to figure out how to switch animation after initialization, but I don't see it in the documentation. Is it possible?

I found the same question in airbnb/ios. Here is the reference: LINK

Right now, I'm reloading the component of the animation using *ngif hiding and showing it again, it works, but not always.
I'm looking for a better solution.

Speed not working

The value I'm setting for speed is not respecting.

<lottie-animation-view
    [options]="{
        path: 'https://assets3.lottiefiles.com/packages/lf20_2SsXhx.json',
        renderer: 'svg',
        autoplay: true,
        loop: true,
        speed: 0.3,
        controls: false
    }"
    [width]="300"
    [height]="600">
</lottie-animation-view>

Loading multiple animations

Hi, I have a set of different animations that I want to load, how can I do this? I tried with animationData but it didn't work.

Thanks in advance.

change animation size

Hi I am wondering if I can change the size of the animation while it is playing. I have tried using CSS transitions to change the container size and also to change the view size with no success

json source data instead of path

Hi,

I am not sure if this is possible but let me explain my problem : We have more and more lottie animations in our application which make a lot of http requests and slow down the loading time.

I was wondering if we could put the lottie data.json as a source instead of a path. Thus we could merge all our lottie's json files to have only one http request then split it to distribute it correctly in each animation.

Thanks!

animation

Dear,

I would like to know if you could help me to know how can I appear disappear the animation when i click on like button in ionic 3?

thanks in advance!

Wrong frame references, playSegments() vs. goToAndStop()

Thanks for the beautiful work! I love lottie, but there seems to be something wrong with frame references.

I got a character animation in AE containing different moves and scenes. Now playing a loop with playSegments() and afterwards playing some single frames with goToAndStop(), the frame references get shifted.

Lets say the AE original has a walk loop from frame 5 to 10 and some single frame character states between 15 an 20. After playing the loop using playSegments([5,10], true), I can't play one of the frames between 15 and 20 using goToAndStop() with their original frame numbers. The first frame has obviously been shifted to 5 now and the original frames numbered 15 to 20 are now frames 10 to 15.

This is somehow confusing. If playSegments() is cropping the frame numbers, how can I reset that? And if it is cropping frames, why only the beginning and not the end?

This is what happens:

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
goToAndStop(15) shows frame 15

playSegments([5,10], true)
1 2 3 4 [5 6 7 8 9 10] 11 12 13 14 15 16 17 18 19 20
goToAndStop(15, true) shows frame 20!
goToAndStop(0, true) shows frame 5!
for goToAndStop() original frame 5 is now frame 0!

playSegments([0,5], true)
[0 1 2 3 4 5] 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
goToAndStop(15) shows frame 15!
for goToAndStop() frame 15 is now frame 15 again!

Even more confusing, shifted frame references seem to only affect goToAndStop() but not playSegments().

E2E tests not working if page contains Lottie file.

We are facing an issue with E2E Tests. E2E tests are not executed successfully, if page have Lottie file.

We have created this repository to replicate the issue easily. Repository

using package.json dependencies:

"e2e": "npm run e2e-update && npm run e2e-test",
"e2e-ci": "npm run e2e-update && npm run e2e-test --single-run",
"e2e-test": "protractor ./test-config/protractor.conf.js",
"e2e-update": "webdriver-manager update --standalone true --gecko true"
"devDependencies": {
    "@ionic/app-scripts": "3.2.1",
    "@types/node": "^12.0.2",
    "@types/jasmine": "^2.8.9",
    "connect": "^3.7.0",
    "jasmine": "^3.4.0",
    "jasmine-spec-reporter": "^4.2.1",
    "protractor": "^5.4.2",
    "ts-node": "^8.1.0",
    "typescript": "~2.6.2"
  },

 "protractor-jasmine2-screenshot-reporter": "^0.5.0",
 "ionic-angular": "3.9.3",
 "ng-lottie": "^0.3.2",
 "rxjs": "5.5.11",

Cannot read property 'effect' of null

I'm having trouble pinning this error message to an issue. I have tried setting the animation before and after view has initialized, or defer-loading it, but it seems that passing the (animCreated) event in the HTML template causes the issue:
image

lottie can not display at all at this package.json

{
"scripts": {
"clean": "ionic-app-scripts clean",
"build": "ionic-app-scripts build",
"lint": "ionic-app-scripts lint",
"ionic:build": "ionic-app-scripts build",
"ionic:serve": "ionic-app-scripts serve"
},
"dependencies": {
"@angular/common": "^4.4.3",
"@angular/compiler": "4.4.3",
"@angular/compiler-cli": "4.4.3",
"@angular/core": "4.4.3",
"@angular/forms": "4.4.3",
"@angular/http": "4.4.3",
"@angular/platform-browser": "4.4.3",
"@angular/platform-browser-dynamic": "4.4.3",
"@angular/tsc-wrapped": "^4.4.6",
"@ionic-native/app-version": "^4.14.0",
"@ionic-native/camera": "^4.15.0",
"@ionic-native/core": "^4.11.0",
"@ionic-native/device": "^4.10.0",
"@ionic-native/document-viewer": "^4.13.0",
"@ionic-native/file": "^4.7.0",
"@ionic-native/file-transfer": "^4.7.0",
"@ionic-native/geolocation": "^4.15.0",
"@ionic-native/http": "^4.11.0",
"@ionic-native/image-picker": "^4.14.0",
"@ionic-native/in-app-browser": "^4.13.0",
"@ionic-native/keyboard": "^4.5.2",
"@ionic-native/local-notifications": "^4.12.2",
"@ionic-native/media": "^4.11.0",
"@ionic-native/native-audio": "^4.11.0",
"@ionic-native/splash-screen": "4.3.0",
"@ionic-native/status-bar": "4.3.0",
"@ionic-native/streaming-media": "^4.11.0",
"@ionic-native/transfer": "^3.14.0",
"@ionic-native/vibration": "^4.12.2",
"@ionic-native/video-player": "^4.11.0",
"@ionic/storage": "^2.0.1",
"@jiguang-ionic/jpush": "^1.0.2",
"@ngx-translate/core": "^8.0.0",
"@ngx-translate/http-loader": "^3.0.1",
"@types/bluebird": "^3.5.23",
"@types/bluebird-global": "^3.5.6",
"@types/lodash": "^4.14.91",
"@types/node": "^10.5.7",
"@types/pixi.js": "^4.7.5",
"angular2-swing": "0.14.0",
"aplayer": "^1.10.1",
"code-push": "^2.0.1-beta",
"com.moust.cordova.videoplayer": "https://github.com/moust/cordova-plugin-videoplayer.git",
"cordova-android": "6.3.0",
"cordova-android-support-gradle-release": "^1.4.4",
"cordova-browser": "~5.0.3",
"cordova-ios": "4.5.5",
"cordova-plugin-advanced-http": "^1.11.1",
"cordova-plugin-baidumaplocation": "^3.2.0",
"cordova-plugin-camera": "^4.0.3",
"cordova-plugin-code-push": "^1.9.7-beta",
"cordova-plugin-device": "^2.0.2",
"cordova-plugin-dialogs": "^2.0.1",
"cordova-plugin-document-viewer": "^0.9.10",
"cordova-plugin-file": "^6.0.1",
"cordova-plugin-file-transfer": "^1.7.1",
"cordova-plugin-inappbrowser": "^3.0.0",
"cordova-plugin-ionic-webview": "^1.1.15",
"cordova-plugin-jcore": "^1.1.12",
"cordova-plugin-nativeaudio": "^3.0.9",
"cordova-plugin-splashscreen": "^4.0.3",
"cordova-plugin-statusbar": "git+https://github.com/apache/cordova-plugin-statusbar.git",
"cordova-plugin-telerik-imagepicker": "git+https://github.com/Telerik-Verified-Plugins/ImagePicker.git",
"cordova-plugin-vibration": "^3.1.0",
"cordova-plugin-video-player": "git+https://github.com/moust/cordova-plugin-videoplayer.git",
"cordova-plugin-wechat": "^2.1.0",
"cordova-plugin-whitelist": "^1.3.3",
"cordova-plugin-zip": "^3.1.0",
"cordova-sqlite-storage": "^2.5.2",
"hewz.plugins.baidu-location": "git+https://github.com/hewz/cordova-baidu-location.git",
"ionic-angular": "3.7.1",
"ionic-audio": "^3.2.2",
"ionic-img-viewer": "^2.9.0",
"ionic-native": "^2.9.0",
"ionic-plugin-keyboard": "^2.2.1",
"ionic2-jpush": "^0.1.1",
"ionicons": "3.0.0",
"jpush-phonegap-plugin": "^3.3.2",
"lodash": "^4.17.4",
"ng-lottie": "^0.3.0",
"ng-lottiev2": "^0.3.6",
"node-vibrant": "^3.0.0",
"performance-now": "^2.1.0",
"rxjs": "^5.5.2",
"rythm.js": "^2.2.3",
"svgaplayerweb": "^2.1.0",
"sw-toolbox": "3.6.0",
"videogular2": "^6.3.0",
"zone.js": "0.8.18"
},
"devDependencies": {
"@ionic/app-scripts": "^3.2.0",
"@types/core-js": "^2.5.0",
"typescript": "^2.9.2"
},
"description": "An Ionic project",
"cordova": {
"plugins": {
"cordova-plugin-device": {},
"cordova-plugin-ionic-webview": {},
"cordova-plugin-splashscreen": {},
"cordova-plugin-statusbar": {},
"cordova-plugin-whitelist": {},
"cordova-plugin-nativeaudio": {},
"cordova-plugin-file-transfer": {},
"cordova-plugin-file": {},
"cordova-plugin-advanced-http": {},
"cordova-plugin-wechat": {
"WECHATAPPID": ""
},
"com.moust.cordova.videoplayer": {},
"cordova-plugin-vibration": {},
"cordova-plugin-inappbrowser": {},
"cordova-plugin-document-viewer": {},
"cordova-android-support-gradle-release": {
"ANDROID_SUPPORT_VERSION": "23.+"
},
"cordova-plugin-camera": {},
"cordova-plugin-baidumaplocation": {
"ANDROID_KEY": "
",
"IOS_KEY": "",
"IOS_LOCATION_DESC": "
"
},
"cordova-plugin-telerik-imagepicker": {
"PHOTO_LIBRARY_USAGE_DESCRIPTION": ""
},
"cordova-plugin-jcore": {},
"ionic-plugin-keyboard": {},
"cordova-sqlite-storage": {},
"cordova-plugin-code-push": {},
"jpush-phonegap-plugin": {
"APP_KEY": "
****"
}
},
"platforms": [
"browser",
"android",
"ios"
]
}
}

Animation events

Is it possible to add event listeners? Like when the animation is loaded for example ? Thanks!

Lottie Animation iOS issue

Need to Rotate or change angle of cycle in Lottie Animation but I can not find any properties related to it. Please help me out

[0.3.2] Broken UMD module

Hi,

Our jest unit-tests are failing when upgrading to the latest 0.3.2 version. After some investigating, it seems like 0.3.2 is released with a broken UMD module. It seems like webpack was unable to resolve lottieAnimationView.component and throws an error.

Broken version: https://unpkg.com/[email protected]/dist/umd/LottieAnimationView.js
Working version: https://unpkg.com/[email protected]/dist/umd/LottieAnimationView.js

On line 77 of the 0.3.2 you can see that module was unable to be resolved and in 0.3.1 it was resolved.

iOS 10.2.1 is not showing the animated svgs

iOS: 10.2.1 (14D27)
node: 7.7.4
npm: 4.2.0
@angular/cli: 1.0
@angular/core: 4.0
lottie-angular2: 0.0.6

I am able to see/play/load the animations on all major browsers and devices except for any browser on the iPhone iOS version above.

Is this something anyone else is experiencing?

How to repeat the specific timing

How to keep the Lottie effect keep running on specific timing?
For example, A loading animation, after an event is completed, then its executed next frame of the loading

Cached json in Angular 5

Hi please check my init config method

initLottieLoader(isMainColor: boolean) {
    return {
      path: isMainColor ? 'assets/Dots-animation-w200-h200-white.json' : 'assets/Dots-animation-w200-h200-mustard.json' ,
      autoplay: true,
      loop: true,
    };
  }

Now every time when I am clicking on the button I have a lot od GET requests on network. How can I cache json?

Ionic 4 support

I'm curious if this will "just work" with Ionic v4 or if it requires any modifications. Thoughts? If it could work, any idea on the best approach to integrate the two?

support for lottie color filters

It would be nice if we could change color of animation's componets.

color_filter="@color/blue" in configuration
and (or):
animationView.addColor(color)
animationView.addColorFilterToLayer('layerName', color)
animationView.addColorFilterToContent('layerName', color);
animationView.clearColorFilters()

as we can see in
http://airbnb.io/lottie/android/colors.html

complete event

How we can add listeners for events:

  • onComplete

  • onLoopComplete

Update dependecies

Lottie has a new version 5.3.4, which corrects a lot of things. It would be very useful to have ng-lottie with the latest version of lottie web. Thank you!

full height and width

I am using in ionic3 project. I want to show full screen. I tried height and width in percentage but not working.

How to make full screen ?

in angular universal has error

My project in angular universal has error:

image

My development environment:

node v7.5.0
npm 4.1.2

package.json:

"@angular/animations": "^4.2.4",
"@angular/common": "^4.2.4",
"@angular/compiler": "^4.2.4",
"@angular/core": "^4.2.4",
"@angular/forms": "^4.2.4",
"@angular/http": "^4.2.4",
"@angular/platform-browser": "^4.2.4",
"@angular/platform-browser-dynamic": "^4.2.4",
"@angular/platform-server": "^4.3.6",
"@angular/router": "^4.2.4",
"@nguniversal/express-engine": "^1.0.0-beta.3",
"ng-lottie": "^0.3.1",

How can I deal this problem?

Angular 4 upgrade?

Hey @chenqingspring thanks so much for making this, it's awesome and works great in my Ionic 2 app. I'm wondering if you have a plan to upgrade to Angular 4 since it's now in RC? I tried installing as is but am getting this error:

Uncaught (in promise): Error: Template parse errors: Can't bind to 'options' since it isn't a known property of 'lottie-animation-view'. 1. If 'lottie-animation-view' is an Angular component and it has 'options' input, then verify that it is part of this module. ...

Cheers!

Throwing Error Message in Console after Angular 9 Upgrade

ERROR TypeError: Cannot read property 'nativeElement' of undefined at LottieAnimationViewComponent.push../node_modules/ng-lottie/__ivy_ngcc__/dist/esm/src/lottieAnimationView.component.js.LottieAnimationViewComponent.ngOnInit (lottieAnimationView.component.js:19) at callHook (core.js:3937) at callHooks (core.js:3901) at executeInitAndCheckHooks (core.js:3842) at selectIndexInternal (core.js:9602) at Module.ɵɵadvance (core.js:9563) at HomeComponent_Template (home.component.html:349) at executeTemplate (core.js:11930) at refreshView (core.js:11777) at refreshComponent (core.js:13217) defaultErrorLogger @ core.js:5873 handleError @ core.js:5926 (anonymous) @ core.js:42349 invoke @ zone-evergreen.js:365 run @ zone-evergreen.js:124 runOutsideAngular @ core.js:40746 tick @ core.js:42346 (anonymous) @ core.js:42186 invoke @ zone-evergreen.js:365 onInvoke @ core.js:40910 invoke @ zone-evergreen.js:364 run @ zone-evergreen.js:124 run @ core.js:40685 next @ core.js:42183 schedulerFn @ core.js:36512 __tryOrUnsub @ Subscriber.js:183 next @ Subscriber.js:122 _next @ Subscriber.js:72 next @ Subscriber.js:49 next @ Subject.js:39 emit @ core.js:36474 checkStable @ core.js:40824 onHasTask @ core.js:40931 hasTask @ zone-evergreen.js:420 _updateTaskCount @ zone-evergreen.js:441 _updateTaskCount @ zone-evergreen.js:264 runTask @ zone-evergreen.js:185 drainMicroTaskQueue @ zone-evergreen.js:570 invokeTask @ zone-evergreen.js:485 invokeTask @ zone-evergreen.js:1596 globalZoneAwareCallback @ zone-evergreen.js:1622

`lottie-animation-view` breaks service-worker

Expected Behavior

Actual Behavior

I would like to be able to use a service worker on pages that use ng-lottie.

Steps to Reproduce the Problem

  1. Create and route to a page that uses ng-lottie and do an ng build --prod
  2. Configure @angular/service-worker as per docs
  3. Notice that ServiceWorker.register() is never called

Specifications

Underlying issue

ng-lottie relies on lottie.loadAnimation which performs an XHR request outside the scope of Angular's zones. When the animationCreate.emit() is called, lottie hasn't loaded the json file yet, causing Angular's isStable flag to never be resolved, thus causing the ServerWorker to never be registered.

Pull Request

I have a working branch with a fix included but am waiting to submit a PR until #27 is merged.

ERROR TypeError: Cannot read property '0' of undefined

Well, I have set up the ng-lottie and I see it working with the pinjump.json file. But didn't work when I switched to my JSON file. Shows this error on the console:

ERROR TypeError: Cannot read property '0' of undefined

I have tried various JSON files available on Lottie Files website and someone works and others don't, displaying the same error. Can someone tell me what's wrong with these JSON files that didn't work? Because on official Lottie previewer works and using pure HTML Lottie lib works fine too.

Here is my project on Stackblitz, so you can check and reproduce the error:
https://stackblitz.com/edit/angular-hvszxz

My JSON file (don´t work):

  • bm-done.json

Other JSON files on the project (working):

  • pin.json
  • pinjump.json

Error on ng build -prod

Hi,
So I have no issues compiling the project for development, but when running ng build -prod to deploy I get this error:

Unexpected token: name (LottieAnimationViewModule) [vendor.026c3e2abdba0940e77a.bundle.js:26365,6]

Any help would be appreciated. Thank you.

Breaks Server Side Rendering because of canvas

Hello there,

LottieAnimationViewModule when imported in app.module and with platform-server breaks SSR:

  throw new Error("NotYetImplemented");
  ^

Error: NotYetImplemented
    at HTMLCanvasElement.exports.nyi 

I think it's because it imports the bodymovin library, which uses canvas, which is not implemented in Domino. Could you fix it or add some configuration option for module, to not use canvas?

Add more options to animation

Hey! Amazing repository.

I already integrated in a sample app using ionic 2 here and it worked perfectly!

I was wondering if you are planning on adding more options like play, pause and stop animations, as well as set loop or autoplay. I'd like to contribute to this repo, but I'm not certain how.

thank you so much for doing this! 🥇

Suggestion: add tests to the project and enable Greenkeeper

Hi 👋,

thanks for the project, this makes using animations fun again!
I'd like to propose a small thing in order to further improve and keep the quality and "up-to-dateness"

If you add some small unit tests and TravisCI, you could enable https://greenkeeper.io/. It constantly monitors your repo and creates a new PR, once a dependency update is available outside your desired range, or when an in range dependency update breaks the build. This means you can rest assured that your project is up to date and the tests are still passing 😄

playSegments runs whole animation

I am implementing ng-lottie in my angular 4 app. I am trying to play a segment when the animation is created. But on creation, it plays the whole animation at first then loop through the segment.
Here is my code -

//Lottie configuration in component.
this.lottieConfig = {
    renderer: 'svg',
    loop: true,
    prerender: false,
    autoplay: false,
    autoloadSegments: false,
    path: './assets/content/data_3.json'
};

//HTML code
<lottie-animation-view [options]="lottieConfig" (animCreated)="handleAnimation($event)" (click)="onAnimationClick()"></lottie-animation-view>

//Handle animation function on animation create
handleAnimation(anim: any) {
	this.anim = anim;
	this.anim.playSegments([[0,479]],true);
} 

Although I am able to find a solution by adding timeout in handleAnimation function. But I do not know if this is the correct way to solve this issue.

//Handle animation function code with timeout
handleAnimation(anim: any) {
	this.anim = anim;

	setTimeout(() => {
		this.anim.playSegments([[0,479]],true);
	} , 1);
}

Just think that it has something to do with this issue
airbnb/lottie-web#398

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.