quicoli / lottiesharp Goto Github PK
View Code? Open in Web Editor NEWLottie animations for WPF applications
License: MIT License
Lottie animations for WPF applications
License: MIT License
I'm considering using LottieSharp in a .NET Framework / WPF application. LottieSharp depends on SharpDX which does not seem to be maintained anymore (see https://github.com/sharpdx/SharpDX). Are there any plans to address this in the future?
Kind Regards
Daniel
Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):
Smartphone (please complete the following information):
Additional context
Add any other context about the problem here.
I need to use a json to make a gif , and when i put the control in my page the error " Object reference not set to an instance of an object" appears , my json is ok i have tried it like embedded resources and also content and it's not working, I don't know how to solve this please
Describe the bug
Switching between views application crashes. Sometimes it takes just to go to another view to make app crash. The error is from SharpDX.
SharpDX.SharpDXException: 'HRESULT: [0x88990012], Module: [SharpDX.Direct2D1], ApiCode: [D2DERR_WRONG_FACTORY/WrongFactory], Message: Objects used together must be created from the same factory instance.
To Reproduce
Expected behavior
Animation should not make app crash and after returning to main view I should see working animation again.
Desktop (please complete the following information):
Smartphone (please complete the following information):
Additional context
Could someone please explain me where is the problem? I would be nice to have working lottie lib on wpf. What could be done to overcome this problem?
I'm testing your library, but I have refresh problem
Try this json
LT-Test_noLogo.zip
Regards
Alessandro
Hi,
I would like to use Lottie with .Net version 4.6.
Is there a specific reason why you are targetting .Net 4.6.1 or can I just compile using 4.6?
Describe the bug
<lottie:LottieAnimationView
x:Name="lottieAnimation"
Canvas.Left="140"
Canvas.Top="-40"
Width="180"
Height="180"
HorizontalAlignment="Center"
VerticalAlignment="Center"
AutoPlay="False"
FileName="{Binding Path=LottieFileChart}"
RepeatCount="0">
<lottie:LottieAnimationView.RenderTransform>
<RotateTransform Angle="30" CenterX="0" CenterY="0" />
</lottie:LottieAnimationView.RenderTransform>
</lottie:LottieAnimationView>
Button Click Event Handler
private void Button_Click(object sender, RoutedEventArgs e)
{
//lottieAnimation.StopAnimation();
lottieAnimation.PlayAnimation();
}
To Reproduce
Steps to reproduce the behavior:
Uncommenting StopAnimation makes no difference.
Expected behavior
Every time I click the button the animation should play
It would be possible to add a reverse animation. Here is an example animation.
Source: https://lottiefiles.com/134813-playpause
Thanks a lot.
Is your feature request related to a problem? Please describe.
In the Airbnb version you can change the colours that are in the animation, it would be great if we could do it through code and not have to edit the json file for the new colour
Describe the solution you'd like
Some way to change the colours of the animation in code and not with editing the json file
Describe alternatives you've considered
editing colour in json file before loading animation (how I'm doing it right now)
When using this nuget withing strongly named assembly project it generates warning that LottieSharp assembly does not have strong name.
Warning CS8002: Referenced assembly 'LottieSharp, Version=1.1.1.0, Culture=neutral, PublicKeyToken=null' does not have a strong name.
Can you sign this nuget with strong name?
It would be good, if the exception would be handled more gracefully. Unfortunately this has been only reported to me, so I cannot reproduce it by myself.
Occurred on Microsoft Windows 7 Professional , 32-Bit, Service Pack 1, Version 6.1.7601, Build 7601
UNHANDLED EXCEPTION: SharpDX.SharpDXException: HRESULT: [0x887A0004], Module: [SharpDX.DXGI], ApiCode: [DXGI_ERROR_UNSUPPORTED/Unsupported], Message: Unknown
bei SharpDX.Result.CheckError()
bei SharpDX.Direct3D11.Device.CreateDevice(Adapter adapter, DriverType driverType, DeviceCreationFlags flags, FeatureLevel[] featureLevels)
bei LottieSharp.WpfSurface.D2dControl.StartD3D()
bei LottieSharp.WpfSurface.D2dControl.Window_Loaded(Object sender, RoutedEventArgs e)
bei System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
bei System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
bei System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
bei System.Windows.UIElement.RaiseEvent(RoutedEventArgs e)
bei System.Windows.BroadcastEventHelper.BroadcastEvent(DependencyObject root, RoutedEvent routedEvent)
bei System.Windows.BroadcastEventHelper.BroadcastLoadedEvent(Object root)
bei MS.Internal.LoadedOrUnloadedOperation.DoWork()
bei System.Windows.Media.MediaContext.FireLoadedPendingCallbacks()
bei System.Windows.Media.MediaContext.FireInvokeOnRenderCallbacks()
bei System.Windows.Media.MediaContext.RenderMessageHandlerCore(Object resizedCompositionTarget)
bei System.Windows.Media.MediaContext.Rend
Bug
I've recently downloaded several lottie files for testing purposes from lottiefiles.com and they can't be made to run. LottieSharp produces crashes likes "Keyframes are missing". The old test-downloads is used work fine. There is a version descriptor in the lottie files ("v":"5.1.12"), the new files have versions like "5.8". I guess there have been changes in the JSON file structures?
Reproduce
Take a lottie file from https://lottiefiles.com/12672-letter?lang=de, download it and load it. As soon as the rendering starts the .net app crashes.
Expected behavior
The file should load and render.
Environment
Windows 10, VS 2017, VB# Windows application
eg:https://assets7.lottiefiles.com/packages/lf20_laffnn.json
SharpDX.SharpDXException
HResult=0x88982F80
Message=HRESULT: [0x88982F80], Module: [SharpDX.Direct2D1], ApiCode: [D2DERR_UNSUPPORTED_PIXEL_FORMAT/UnsupportedPixelFormat], Message: 位图像素格式不受支持。
Source=SharpDX
Is this library dead?
Any updates add to it? for show new Lottie files?
And support for .NET Core 3??
Getting this exception while using spinner control. had downloaded the source code and fixed issue locally, how do we put the fix as part of upcoming release. Fix details,
Filename: LottieSharp-master\LottieSharp\WpfSurface\D2dControl.cs
on line number 135 inside method "OnIsFrontBufferAvailableChanged" added null check as follows if (d3DSurface != null && d3DSurface.IsFrontBufferAvailable)
Exception Details: Unhandled exception
System.NullReferenceException: Object reference not set to an instance of an object.
at LottieSharp.WpfSurface.D2dControl.OnIsFrontBufferAvailableChanged(Object sender, DependencyPropertyChangedEventArgs e)
at System.Windows.DependencyPropertyChangedEventHandler.Invoke(Object sender, DependencyPropertyChangedEventArgs e)
at System.Windows.Interop.D3DImage.IsFrontBufferAvailablePropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
at System.Windows.DependencyObject.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
at System.Windows.Freezable.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
at System.Windows.DependencyObject.NotifyPropertyChange(DependencyPropertyChangedEventArgs args)
at System.Windows.DependencyObject.UpdateEffectiveValue(EntryIndex entryIndex, DependencyProperty dp, PropertyMetadata metadata, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType)
at System.Windows.DependencyObject.SetValueCommon(DependencyProperty dp, Object value, PropertyMetadata metadata, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType, Boolean isInternal)
at System.Windows.DependencyObject.SetValue(DependencyPropertyKey key, Object value)
at System.Windows.Interop.D3DImage.SetIsFrontBufferAvailable(Object isAvailableVersionPair)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
at System.Windows.Threading.DispatcherOperation.InvokeImpl()
at MS.Internal.CulturePreservingExecutionContext.CallbackWrapper(Object obj)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at MS.Internal.CulturePreservingExecutionContext.Run(CulturePreservingExecutionContext executionContext, ContextCallback callback, Object state)
at System.Windows.Threading.DispatcherOperation.Invoke()
at System.Windows.Threading.Dispatcher.ProcessQueue()
at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
at System.Windows.Application.RunDispatcher(Object ignore)
at System.Windows.Application.RunInternal(Window window)
at Sncr.Cloud.UI.App.Main()
An unhandled exception of type 'System.NullReferenceException' occurred in WindowsBase.dll
Object reference not set to an instance of an object.
Hello guys,
this weekend I found this:
Codegen post about generating c# classes based on lottie animations....
What do you think of this? Would be worthy to have something like this for LottieSharp?
Windows in version 1.1.2 drag form slowly
Regards
Is your feature request related to a problem? Please describe.
I use the LottieAnimationView inside canvases together with other shapes. My test-lottie's are rendered with white background which overlaps shapes. I would be beneficial if there would be an option inside LottieSharp to render the shapes with transparent background. I know there are SharpDX options for that, but I don't know nothing about SharpDX in detail.
Describe the solution you'd like
Background is not white but transparent.
Describe alternatives you've considered
I tried to set "background" to "000" for the LottieAnimationView, but that had no effect. There are notes about "how to set sharpdx background to transparent" by setting the background and the backgroundcolor to "#00000000" but this didn't seemed to work.
Additional context
I'm willing to contribute if someone would give me an pointer where to add it.
Unable to parse composition
StackTrace
at LottieSharp.LottieAnimationView.SetAnimationAsync(String assetName)
at LottieSharp.LottieAnimationView.FileNamePropertyChangedCallback(DependencyObject dependencyObject, DependencyPropertyChangedEventArgs e)
at System.Threading.Tasks.Task.<>c.b__139_0(Object state)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
i simply have this code:
<lottieSharp:LottieAnimationView
x:Name="LottieAnimationView"
DefaultCacheStrategy="None"
FileName="logo-anim.json" AutoPlay="True"
VerticalAlignment="Center"
HorizontalAlignment="Center"/>
Is your feature request related to a problem? Please describe.
Can not use lottie in button easily.
Describe the solution you'd like
Provide a simple lottiesharpbutton class to solve this problem.
Describe alternatives you've considered
n/a
Additional context
n/a
Describe the bug
I am trying to use this library to display telegram stickers, but I always get a NullReferenceException ("Unable to parse composition"). So, I downloaded this repo and I was able to reproduce this issue in the Sample-Project.
Unzipping my tgs-files also works properly, I've also tested the result json in https://lottiefiles.com/tools/json-editor and it's working.
Sample-JSON-File:
1137162165791228122.tgs.zip
So, while debugging I figured out that animatableTransform.Rotation
is null
:
https://github.com/ascora/LottieSharp/blob/80d9cf27ccd234d2b23c523f1ad2b0ea2432f07c/LottieSharp/Animation/Keyframe/TransformKeyframeAnimation.cs#L29
As a result I added null
-checks in TransformKeyframeAnimation
where _rotation
is used and it works fine.
Desktop
Hellow Is this project funcional in WPF or is only a fake delution?
I have tried running the LottiSharp.Sample and this exception is the only thing that i get back from the app.
Tried playing all of the asset animations in the sample, but none of them do anything, also tried my own animation (did not work either). I have also tried using the library in my own project with the same result.
I am running NET 5 version on windows 10 (if that can be related).
Anybody knows what this could be? Thank you very much!
When using a lottie animation using LottieSharp v2, I'm getting a low framerate playback, maybe 15fps or so. If i use the exact same Json file in winui 3 the playback is a smooth 30fps. Is there anything I'm doing wrong here?
Steps to reproduce the behavior:
Expected behavior
Smooth playback
Nice plugin for Windows Form applications.
I'm not sure if this feature already exists, but it would be nice to get a event when the animation is finished.
Can the ZIP package containing the image file be used? Set FileName=ZIP path directly and set FileName=JSON path path after decompression.
The sample in design mode was raising an exception in Visual Studio designer, blocking the view of the mainwindow xaml. To fix, change the LottieAnimationView.LottieAnimationView() to this:
public LottieAnimationView()
{
_lottieDrawable = new LottieDrawable();
if (!DesignerProperties.GetIsInDesignMode(this))
{
if (!string.IsNullOrEmpty(FileName))
{
SetAnimationAsync(FileName).RunSynchronously();
}
else if (!string.IsNullOrEmpty(Url))
{
SetAnimationFromUrlAsync(Url).RunSynchronously();
}
if (AutoPlay)
{
_lottieDrawable.PlayAnimation();
}
}
_lottieDrawable.RepeatCount = RepeatCount;
EnableMergePathsForKitKatAndAbove(false);
SimpleColorFilter filter = new SimpleColorFilter(ColorFilter);
KeyPath keyPath = new KeyPath("**");
var callback = new LottieValueCallback<ColorFilter>(filter);
AddValueCallback(keyPath, LottieProperty.ColorFilter, callback);
EnableOrDisableHardwareLayer();
}
I just moved the "if (AutoPlay") to be executed only if not in design mode.
BTW, do you have tasks for this project? I'd like to help you.
Hello,
after using this plugin in a WPF project, we saw that texts elements of the Lottie json file are shifted to the right, compare to the real animation.
For exemple, we have this animation that "Lottie" text appeared at the bottom right corner.
When this JSON is used with LottieSharp, there is the same animated frame but the text "Lottie" is shift to right, as we can see in the picture below representing the last frame of the animation.
There is a solution to this ? Or this a bug to fix ?
Thanks in advance for your time
Antoine
I have a short question:
Is it possible to enable animation in case of Remote Desktop Connection is used?
Actually I see animations only in case of native Windows Session, but not over a RDP Session.
Describe the bug
I try to set the FileName
property if the file does not exist, I got an exception.
To Reproduce
Steps to reproduce the behavior:
FileName
as a not existing file.Expected behavior
I won't get any exception and the control raise a Failed
event.
Desktop (please complete the following information):
Describe the bug
Using this sample-file leads to an ArgumentOutOfRangeException
here
https://github.com/ascora/LottieSharp/blob/80d9cf27ccd234d2b23c523f1ad2b0ea2432f07c/LottieSharp/Model/Content/ShapeData.cs#L68
I don't know exactly why the curves don't have the same amount of points, but this json file also works at https://lottiefiles.com/tools/json-editor.
As a fix I changed the line to:
for (var i = Math.Min(Math.Min(shapeData1.Curves.Count, shapeData2.Curves.Count), _curves.Count) - 1; i >= 0; i--)
But I don't really know if this is the correct solution to fix this problem, but at least this prevents the App from crashing and the output looks fine though.
The issue is when window with animation opened, then ctrl+alt+del is clicked and animation disappears.
Steps to reproduce the behavior:
Hello. After installing the LottieSharp(V 2.0.1), and adding the namespace in the xaml file and the corresponding tag, it gives the following message
===================== MY Code =====================
NameSpace:
xmlns:lottie="clr-namespace:LottieSharp.WPF;assembly=LottieSharp"
<lottie:LottieAnimationView
Width="200"
Height="300"
HorizontalAlignment="Center"
VerticalAlignment="Center"
AutoPlay="True"
FileName="C:\Res\Images\Public\data_not_found.json"
RepeatCount="-1" />
Exeption Error:
System.Windows.Markup.XamlParseException: 'The type initializer for 'LottieSharp.WPF.LottieAnimationView' threw an exception.'
------ ↓ and ↓ -------
FileNotFoundException: Could not load file or assembly 'WindowsBase, Version=6.0.2.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35'. The system cannot find the file specified.
*** One thing I have to say is that the json file is available in the specified path.
Has anyone had this problem?
===================== MY Code =====================
Getting the following error while installing in Visual Studio with the NuGet package manager
"Failed to initialize the PowerShell host. If your PowerShell execution policy setting is set to AllSigned, open the Package Manager Console to initialize the host first."
IT allows only AllSigned PowerShell scrips. Can you digitally sign the PowerShell to make the project work for more people?
I found a how to;
https://docs.microsoft.com/en-us/nuget/create-packages/sign-a-package
Describe the bug
Using more CPU and GPU usage that it should when animation is paused/cancelled
To Reproduce
Steps to reproduce the behaviour:
Expected behaviour
CPU and GPU usage should be lower then it is when animation is running
Desktop (please complete the following information):
Additional context
Mainly GPU usage should be lower when paused because it isn't doing any animating
Describe the bug
After an app with an animation is started, if the user locks the computer, when the computer is unlocked (even after a few seconds) the animation is not shown anymore.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
The animation would be displayed.
Screenshots
Before locking the computer:
Desktop (please complete the following information):
Additional context
The animation has no state where nothing is visible.
Describe the bug
Lottie animation crashes WPF application
To Reproduce
Just run lottie animation and wait, application will crash.
Expected behavior
The program '[0x192B4] Seekadoo.exe' has exited with code -1073740791 (0xc0000409).
Desktop (please complete the following information):
Additional context
Visual Studio 2017
I added a a json file from the stock lottie animations on their website. On running the application, the app was consuming a total of 70MB memory. Within a minute, it shooted to 100MB.
To Reproduce
Steps to reproduce the behavior:
<lottieSharp:LottieAnimationView Height="200" Width="200"
DefaultCacheStrategy="None"
FileName="Assets/phone_number_verification.json" AutoPlay="True"
VerticalAlignment="Top"
HorizontalAlignment="Left"/>
My company is using LottieSharp to display JSON videos in our application via the WPF LottieAnimationView. We are just setting a file name and setting AutoPlay=true. When I run a test program that just displays the video second window, the Unmanaged memory goes up by 8 MB each time the video is run.
We do automation testing on our application and since we have added LottieSharp videos, the automation testing fails quickly with out of memory exceptions.
The leaks appear to be in the SharpDX library.
Is anyone else seeing these?
Expected behavior
No unmanaged memory leaks.
Desktop (please complete the following information):
Additional context
Add any other context about the problem here.
Hi folks,
I will have lotties files stored within a database, so I can't use the filename property. I would like to have something like a content property which can be set from code behind.
Any plans on this?
If not, I'm willing to implement it and share...
Describe the bug
The LottieView is not support the pack uri like "pack://siteoforigin,,,/Resources/Lottie/xxx.json".I got blank by this way.
To Reproduce
Steps to reproduce the behavior:
Is your feature request related to a problem? Please describe.
I don't want to expose json file on to the user's files system.
Describe the solution you'd like
Would be good if the library could support reading the json from app's resource i.e. pack URI.
Describe alternatives you've considered
The other way is to write additional code to read json from resource and pass it to the library.
Additional context
Add any other context or screenshots about the feature request here.
Hi,
we have noticed, that users with additional GPU on their PC have huge lags on our WPF .net application, which are using lottie animation..
If we remove Lottie animation from application, app works like a charm.
Have anyone noticed similar issue?
Is your feature request related to a problem? Please describe.
Using the NuGet Package from https://www.nuget.org/packages/LottieSharp/2.0.1 in a Project that uses MSIL produces a warning because the Package uses AMD64.
Describe the solution you'd like
Distribute a MSIL DLL instead of an AMD64 DLL.
Describe alternatives you've considered
I Could change my Project to AMD64
Additional context
Translated, (original german warning below):
Severity Code Description Project File Line Suppression State
Warning MSB3270 Conflict between the processor architecture of the project "MSIL" being built and the processor architecture of the reference, "C:\Users\schumacher.nuget\packages\lottiesharp\2.0.1\lib\net6.0-windows7.0\LottieSharp.dll", "AMD64". This conflict can cause runtime errors. If necessary, use the Configuration Manager to change your project's target processor architecture so that the processor architectures are aligned between your project and the references, or select a reference dependency with a processor architecture that matches your project's target processor architecture. Ui.Wpf C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets 2302
original german warning:
Schweregrad Code Beschreibung Projekt Datei Zeile Unterdrückungszustand
Warnung MSB3270 Konflikt zwischen der Prozessorarchitektur des Projekts "MSIL", das erstellt wird, und der Prozessorarchitektur des Verweises, "C:\Users\schumacher.nuget\packages\lottiesharp\2.0.1\lib\net6.0-windows7.0\LottieSharp.dll", "AMD64". Dieser Konflikt kann zu Laufzeitfehlern führen. Ändern Sie ggf. mithilfe des Konfigurations-Managers die als Ziel angegebene Prozessorarchitektur Ihres Projekts so, dass die Prozessorarchitekturen zwischen Ihrem Projekt und den Verweisen ausgerichtet werden, oder wählen Sie eine Abhängigkeit von Verweisen mit einer Prozessorarchitektur, die der als Ziel angegebene Prozessorarchitektur Ihres Projekts entspricht. Ui.Wpf C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets 2302
@Crayjin How do you think about this logo?
Trying to load this animation:
https://lottiefiles.com/5901-gradient-loading-icon
Got this exception when the application starts:
System.InvalidOperationException: 'Missing values for keyframe.'
From what I could understand, the issue relates to newer versions of Lottie files.
Please advise...
Describe the bug
Animation doesn't show after loading another animation
To Reproduce
Steps to reproduce the behaviour:
Expected behaviour
After loading a new animation it would show the new animation on the screen
Desktop:
FluentWpfChromes -> Microsoft.Windows.Compatibility 6.0.0 -> System.Security.Permissions (>= 6.0.0)
LottieSharp 1.1.3 -> DotNetZip 1.15.0 -> System.Security.Permissions (>= 5.0.0 && < 6.0.0). SketchLauncher
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.