Code Monkey home page Code Monkey logo

sourcedemorender's Introduction

Source Video Render

Download

Discord

Source Video Render (SVR, formely SDR) is used to record movies for the Source engine. SVR does not have video effects - if you need video effects, see HLAE.

SVR can record faster than realtime for normal videos, or with high quality motion blur.

See Replay Viewer as a substitute for Counter-Strike: Source Source TV demos! The replay viewer will produce significantly smoother videos without teleport lag and server side interpolation.

Updates

You can use update.cmd in the SVR directory to automatically download the latest release. The latest SVR will be downloaded to svr.zip. You can extract this folder and SVR is now updated.

Prerequisites

Any DirectX 11 (Direct3D 11.3, feature level 12_0) compatible graphics adapter with minimum of Windows 10 1909 is required. Hardware feature support verification will occur when starting the launcher.

Startup

Use svr_launcher.exe or svr_launcher64.exe to start the standalone SVR launcher. The launcher allows you to select which game you want to start. The games database is stored in the data/games directory. Here you can create new game profiles if you wish to change the launch parameters or configurations. The following launch parameters are always added by the launcher: -steam -insecure +sv_lan 1 -console -novid.

The menu selection of the launcher can be bypassed by passing in the identification name for a game as a start argument to the launcher. As an example:

svr_launcher.exe cstrike_steam.ini

Recording

Once in game, you can use the startmovie console command to start recording a movie and the endmovie command to stop.

The startmovie command should be used like this:

startmovie <file> (<optional parameters>)

As an example:

startmovie movie.mov timeout=30

The above example will produce a video called movie.mov with a render region of 30 seconds. Videos will be placed in the data/movies/ directory.

The list of optional parameters are as follows:

Parameter Description
timeout=<seconds> Automatically stop rendering after the elapsed video time passes. This will add a progress bar to the task bar icon. By default, there is no timeout.
profile=<string> Override which rendering profile to use. If omitted, the default profile is used. See below about profiles.
autostop=<value> Automatically stop the movie on demo disconnect. This can be 0 or 1. Default is 1. This is used to determine what happens when a demo ends, when you get kicked back to the main menu.
nowindupd=<value> Disable window presentation. This can be 0 or 1. Default is 0. For some systems this may improve performance, however you will not be able to see anything.

When starting and ending a movie, the files data/cfg/svr_movie_start_user.cfg and data/cfg/svr_movie_end_user.cfg in data/cfg will be executed (you can create these if you want to use them). This can be used to insert or overwrite commands that should be active only during the movie period. Note that these files are not in the game directory, but in the SVR directory in data/cfg.

It is recommended that you don't edit svr_movie_start.cfg and svr_movie.end.cfg as they may be changed in updates, which would overwrite your changes.

The execution order of the cfgs is as follows: svr_movie_start.cfg > svr_movie_start_user.cfg. Each cfg file can override the previous.

The commands that are placed in svr_movie_start.cfg are required and must not be overwritten. Most notably, the variable mat_queue_mode must be 0 during recording for recording to work properly.

Something's not working

If something is not working properly, please find the SVR_LOG.txt and ENCODER_LOG.txt file in the data/ directory and explain what you were doing and upload it to Discord or create a new issue here.

Interoperability with other programs

Due to the nature of reverse engineering games, it cannot be trusted that direct interoperability (with ReShade or HLAE for example) will work because the risk of collision.

Profiles

All recording settings are loaded from profiles which are located in data/profiles. The default profile is called default.ini and is the base profile of all settings. These profiles are shared across all games and are written in a simple INI format. The documentation for profiles is written inside the default profile here.

The default profile is used if no other is specified when starting the movie. You can override settings in the default profile by creating your own profiles inside data/profiles. When starting your movie you can then specify your new profile (see Recording above).

The default profile is always loaded first, and your custom profile is loaded on top. This allows you to override individual setting without copying the entire profile. To create your own profile, create a file with an .ini extension inside data/profiles/. You can now override settings in the default profile by putting in the settings you want to override.

Motion blur demo

In this demo an object is rotating 6 times per second. This is a fast moving object, so higher samples per second will remove banding at cost of slower recording times. For slower scenes you may get away with a lower sampling rate. Exposure is dependant on the type of content being made. The goal you should be aiming for is to reduce the banding that happens with lower samples per second. A smaller exposure will leave shorter trails of motion blur.

The X axis is the samples per second and the Y axis is the exposure (click on the images to see them larger).

960 1920 3840 7680
0.25 mosample_960_025 mosample_1920_025 mosample_3840_025 mosample_7680_025
0.50 mosample_960_050 mosample_1920_050 mosample_3840_050 mosample_7680_050
0.75 mosample_960_075 mosample_1920_075 mosample_3840_075 mosample_7680_075
1.00 mosample_960_100 mosample_1920_100 mosample_3840_100 mosample_7680_100

Building

  1. Extract ffmpeg-n5.1-latest-win64-gpl-shared-5.1 to deps\ffmpeg\.
  2. Copy contents of deps\ffmpeg\bin\ to bin\.
  3. Build deps\minhook\build\VC16\MinHookVC16.sln in Release.
  4. Open svr.sln.
  5. Call build_shaders.cmd from a Visual Studio Developer Command Prompt. In Visual Studio 2022, you can use Tools -> Command Line -> Developer Command Prompt.

sourcedemorender's People

Contributors

akethorpe avatar crashfort avatar neoony avatar smileyag avatar xen-000 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

sourcedemorender's Issues

Unable to load plugin

] plugin_load SourceDemoRenderer.dll
Loading unsigned module SourceDemoRenderer.dll
Access to secure servers is disabled.
Unable to load plugin "SourceDemoRenderer.dll"
Unable to load plugin "SourceDemoRenderer.dll"

Did everything as in the readme.

Steam is not open error even though it is

When trying to launch the exe, im getting the [Steam is not open] error despite it being open, is this due to me starting steam in offline mode due to the wifi I'm currently connected to blocking it?

Broken after latest CSGO update

New update for CSGO got released and SDR is no longer compatible. It gives the error without allowing you to use it normally
image

WARNING: Mismatch between installed Steam build and tested SVR build. Steam game build is 8128170 and tested build is 7866056. Problems may occur as this game build has not been tested!
-----------------------------
Starting Counter-Strike: Global Offensive (build 8128170). If launching doesn't work then make sure any antivirus is disabled
Launcher finished, rest of the log is from the game
---------------------------------------------------
Hello from the game
Pattern get_get_spec_target_fn had no match
!!! ERROR: Mismatch between game version and supported SVR version. Ensure you are using the latest version of SVR and upload your SVR_LOG.txt.```

CS:GO running very slowly and crashing when opening demos

When launching a demo in csgo after I booted it through the exe, it runs very slowly, like barely moving. And when I try to skip forward into the demo, the game freezes and basically crashes.
Is this an issue on my end or is it a bug? Any help would be appreciated,
thanks.

Failed to load plugin TF2

Team Fortress 2, Windows 10

] exec sdr_load_mp
Loading unsigned module SourceDemoRender.Multiplayer.dll
Access to secure servers is disabled.
SDR: Creating 11 modules
SDR: Enabled module "OutputDebugString" -> kernel32.dll @ 0x75813570
SDR: Enabled module "ActivateMouse" -> engine.dll @ 0x69555730
SDR: Enabled module "AppActivate" -> engine.dll @ 0x6953FD10
SDR: Could not enable module "StartMovie" - "MH_ERROR_NOT_EXECUTABLE"
Failed to load plugin "SourceDemoRender.Multiplayer.dll"
Unable to load plugin "SourceDemoRender.Multiplayer.dll"

Could not write data.

I get the following error in the console every frame when recording

windows: Could not write 8294400 bytes to pipe 0x1ff0 (232)
Could not write 8294400 bytes to movie pipe. Has process 11752 ended?

Nothing appears in movies folder after recording, no matter the profile.
Simple fix?

d3d11: Could not create shader 'motion_sample_cs.svs'

Tried everything out, but it simply won't work because of that error:

Starting process
Created process with id 9836 and thread id 7404
Allocating 4096 remote bytes
Remote address: 0x990000
Resuming process
Using game thread 1504
Waiting for libraries:
- hl2.exe
- shaderapidx9.dll
- materialsystem.dll
- engine.dll
- tier0.dll
- client.dll
Libraries loaded, initializing
d3d11: Creating release device
d3d11: Created device with feature level 45056
d3d11: Could not create shader 'motion_sample_cs.svs' (-7ff8ffa9)
Could not create graphics backend
Could not initialize game. Terminating
Initialization failure

The game just pops in, start loading and then crashes after that.

CS:S crash on launch

F:\Program Files\Steam\SteamApps\common\Counter-Strike Source\cstrike\SDR>.\LauncherCLI.exe "F:\Program Files\Steam\SteamApps\common\Counter-Strike Source\hl2.exe" -window -w 1920 -h 1080 -novid
Searching game config for matching name
Found "cstrike" in game config
Appending parameters: "-steam -insecure +sv_lan 1 -console"
Game: "cstrike"
Executable path: "F:\Program Files\Steam\SteamApps\common\Counter-Strike Source\hl2.exe"
Directory: "F:\Program Files\Steam\SteamApps\common\Counter-Strike Source\cstrike"
Parameters: "-steam -insecure +sv_lan 1 -console -window -w 1920 -h 1080 -novid"
Starting "cstrike"
Injecting into "cstrike"
Waiting for signals
Received remote SDR signal
SDR initialized in "cstrike"
Waiting for finished loading event
SDR fully loaded
SDR: Creating 26 modules
SDR: Enabled module "ActivateMouse"
SDR: Enabled module "AppActivate"
SDR: Enabled module "MaterialsPtr"
SDR: Enabled module "MaterialSystem_GetBackBufferDimensions"
SDR: Enabled module "EngineClientPtr"
SDR: Enabled module "EngineClient_ConsoleVisible"
SDR: Enabled module "EngineClient_FlashWindow"
SDR: Enabled module "EngineClient_ClientCommand"
SDR: Enabled module "D3D9_Device"
SDR: Enabled module "DrawLoading"
SDR: Enabled module "View_Render"
SDR: Enabled module "StartMovie"
SDR: Enabled module "StartMovieCommand"
SDR: Enabled module "EndMovie"
SDR: Enabled module "EndMovieCommand"
SDR: Enabled module "SUpdateGuts"
SDR: Enabled module "CvarPtr"
SDR: Enabled module "Cvar_FindVar"
SDR: Enabled module "ConVar_Info"
SDR: Enabled module "ConVar_Constructor3"
SDR: Enabled module "ConCommandBase_Info"
SDR: Enabled module "CCommand_Info"
SDR: Enabled module "ConCommand_Info"
SDR: Enabled module "ConCommand_Constructor1"
SDR: Enabled module "Console_Info"
SDR: Enabled module "Engine_Info"
SDR: Startup procedure (1/2): "MovieRecord console variables"
SDR: Startup procedure (2/2): "PluginInterface console commands"
SDR: Library version: 20
SDR: Current game: "cstrike"
SDR: Source Demo Render loaded
You can close this window now

Haven't found a clear guide on using recent versions of SDR, so I easily could have just done some setup wrong, or somesuch. I used to use it in version 6 or so, but it's not the same anymore.

Running the batch file, the prompt prints what I've pasted above, and then game launches and I get the Windows error that it has stopped responding. (Different error to 'is not responding', as that one you can just wait out, usually.)

Recording Times

I want to record my 2 hour speed runs and surf demos... whats the best options to lower record time? It takes up 2gb and 30+ min for 3minutes... any alternatives or settings that I can change ?

Awesome tool btw

Can no longer launch game

After launching the new build it shows "Installed Games" for me which is CSS and CSGO. I select CSGO and it just says "not found in any Steam library"

image

CSGO SourceTV demo not support

i tested the pr #57 on CSGO with my player demo and SourceTV demo, those vel are in follow

player SourceTV
dynamic 0

this doesn't happen on CSS!

btw it seems to have to solve this: #57 (comment)
should replace get_player_by_idx with get_entity_by_idx ?

What do I do for directory?

trying to get the game directory but it is saying " Game Half-Life 2 and Portal Source Unpack/hl2 does not exist in game config."

CS:GO overlay

Overlay for CS:GO is showing up, but value always stays 0

Tested with multiple demos, still works fine with version from #43 comments

Preview window extension doesnt load properly

I have activated, selected and it says that the plugin has been loaded on both the log screen and the ingame console. However i cannot for the life of me to get the preview window to appear. Im running counter strike source on windowed mode if that makes any difference.

Garrys mod fails to enable module "StartMovieCommand"

PS D:\SDR> .\LauncherCLI.exe /GAME "D:\Steam\steamapps\common\GarrysMod\hl2.exe" /PATH "D:\Steam\steamapps\common\GarrysMod\garrysmod" "-novid -nojoy -windowed -w 1920 -h 1080"
SDR library version: 26
Appending parameters: "-steam -insecure +sv_lan 1 -console"
Searching game config for matching name
Found "Garry's Mod" in game config
Game: "Garry's Mod"
Executable: "D:\Steam\steamapps\common\GarrysMod\hl2.exe"
Directory: "D:\Steam\steamapps\common\GarrysMod\garrysmod"
Resource: "D:\SDR"
Parameters: "-steam -insecure +sv_lan 1 -console"
Starting "Garry's Mod"
Injecting into "Garry's Mod"
Waiting for stage "Initialize"
Passed stage "Initialize"
Waiting for stage "Load"
SDR: Creating 23 game modules
SDR: Enabled module "MaterialsPtr"
SDR: Enabled module "EngineClientPtr"
SDR: Enabled module "View_Render"
SDR: Enabled module "StartMovie"
"StartMovieCommand"
{
"GenericHookVariantInit"
{
"CreateHookBareShort"
{
"GetAddressFromJsonPattern"
{
"AddressFinder"
{
Null pointer
}
}
}
}
}
SDR: Could not enable module "StartMovieCommand"
Could not pass stage "Load"
You can close this window now`

OS: Windows 10
GPU: Nvidia GTX-1050 TI (MSI 4GT OC)

Am I doing anything wrong on my end that prevents this from working?

CS:GO recordings just being a black screen

When recording csgo, svr didn't record any of the video and it was just a black screen with the speed on the bottom, why might this be happening? When I originally rendered it, I was in borderless window so I thought that was the issue, but then I recorded in fullscreen and still got the same issue. It also performs very slowly when previewing, could this be the issue?

image
This is all I get for a recording

Stutter while rendering

This has been plaguing me for months, when i start rendering the demo playback becomes stuttery and weird producing an unsmooth video, its nothing to do with the demos themselves as on their own the playback is fine, its only when rendering, ive tried pretty much everything i can think of to fix this, tried older versions, even reformatted, nothing helps. You can see the stutter in the attached video, though it is hard to notice, its there.

e: fixed,if anyone else is having this issue enable performance counter access

Linux Version

Any chance of a version for Linux systems any time soon? This software looks interesting and I'd love to try it out but I don't use Windows.

Voice chat never fades away until round end

While performing demo playback recordings in Counter-Strike: Source, players who initiate voice chat will have voice chat enabled on them for the rest of the round or until I issue snd_restart to clear the sounds. This means that if one person presses voice chat by accident, they can appear in the voice chat for the remainder of the round, even if they say nothing for the rest of the round.

When I do not issue the startmovie command (but having SDR and all configs loaded), the voice chat is normal, with non-speaking players being removed from the chat as normal. This behavior also does not happen with the original TGA demo recorder.

Old Counter-Strike Source (1.0.0.34) support?

Is there any support for old Counter-Strike Source?

Protocol version 7
Exe version 1.0.0.34 (cstrike)
Exe build: 17:27:58 Dec  3 2009 (4044)

It is also known as "v34".

I tried to launch it via SDR but got following error:

"MaterialsPtr"
{
    "GetAddressFromJsonPattern"
    {
        "AddressFinder"
        {
            Null pointer
        }
    }
}
SDR: Could not enable module "MaterialsPtr"
Could not pass stage "Load"

The sequence number 8 was not found in the DLL d2d1.dll.

This error appears after "Looking for updates." step. If automatic updates is disables it doesn't appear at the startup, but still appears when I click on "Extensions" button. Unfortunately, I'm from Russia and have Russian language OS, so maybe I translated this error wrong, I'll include original error text.

Title 1: SDR Launcher UI: LauncherUI.exe - Порядковый номер не найден
Title 2: CiceroUIWndFrame: LauncherUI.exe - Порядковый номер не найден
Content: Порядковый номер 8 не найден в библиотеке DLL d2d1.dll.

Title could be one of two, but error is still the same.

OS: Windows 7 Ultimate SP1 x64

colors

is there a possibility to make the video not look so "colorful"
preview

Add L4D2?

If possible, could L4D2 be added to the list of supported games?

TF2 crashing on startup

Whenever I launch tf2 through launcherUI, the game opens briefly and then crashes with the following error.

"CvarPtr"
{
    "GetAddressFromJsonPattern"
    {
        "AddressFinder"
        {
            Null pointer
        }
    }
}
SDR: Could not enable module "CvarPtr"
Could not pass stage "Load"

SDR refuses to render a video on my PC regardless of container

Every time I try to record anything, it manages to successfully finish the recording process, but leaves me with an empty low MB (2mb per 4 seconds) container .avi with a black screen, and only game audio.
I have an AMD dual link GPU integrated HP Notebook laptop PC.
Specs:
https://i.imgur.com/PE93BJc.jpg
It just simply refuses to render any video, and I've been wanting to use this for over 2-3 months now but absolutely nothing seems to be working in any way, shape or form.
Note: I have a laptop with integrated APU, you mentioned something about this before, but I never fully figured out why it just simply refuses to work. I've managed to install Dokan for srcdemo2 on my pc successfully, with no real problems aside from the depreciation and it looking terrible

SDR Don't Start

Hello Guys,
I wanted to test out SDR in Gmod but im keep getting this error message when im launching it in the LauncherUI:

Parameters: "-steam -insecure +sv_lan 1 -console -window -w 1920 -h 1080"
Starting: "Garry's Mod"
Injecting into: "Garry's Mod"
Waiting for stage: "Initialize"
Process exited at stage "Initialize"
You can close this window now

Pls help

SVR uses nonlinear sRGB for frame blending

Only tested in CS:GO.

Frame blending should be done in linear sRGB, but SVR currently uses nonlinear sRGB leading to darkened blending between some colours and between light and dark areas:
image

Compared with correct blending:
image

Here's the map i used for testing: svr_srgb.zip

My crude fix was done like this:
motion_sample.hlsl

void main(uint3 dtid : SV_DispatchThreadID)
{
    uint2 pos = dtid.xy;

    float4 source_pix = source_texture.Load(dtid);
    source_pix.xyz = pow(max(source_pix.xyz, 0), 2.2);
    dest_texture[pos] += source_pix * mosample_weight;
}

tex2vid.hlsl

void proc(uint3 dtid)
{
    float4 pix = input_texture[dtid.xy];
    pix.xyz = pow(max(pix.xyz, 0), 1.0 / 2.2);
    ...
}

Steam overlay in recordings

Steam overlay shows up in TF2 SVR recordings since version 35. This was not present in 1.1.

The overlay can of course be avoided by not opening it, but steam notifications etc. will also show up. The primary issue for me is the "Access the Steam community while playing" -popup that happens shortly after game launch since my recordings are automated and can start shortly after the game if the demo file is short enough. See for example https://youtu.be/GGrFzaJ4A10?t=36 (00:36, bottom right corner).

I couldn't find any launch args to disable steam overlay at https://developer.valvesoftware.com/wiki/Command_Line_Options#Source_Games unless I missed something. Remembering to disable overlay through steam library > game properties every time before recording is a pain.

ConVar methods are deprecated. (At least in TF2)

Game: TF2 (BuildID: 3001717)
Get/Set Bool/Float/Int are deprecated. Strings should be used. Proof:
output
code

How i know that they are deprecated? They used to segfault me all the time i was writing a ConVar system for my cheats.

csgo support

Have you planned on making this compatible with csgo in the near future?

Momentum in Game config seems to be outdated

I can't add Momentum as a game with SDR because it tells me it does not exist in game config.
I checked the game config, and it seems to list Momentum's exe as being in folder "Source SDK Base 2013 Multiplayer"
That's not the case with the current Steam version of Momentum, the exe is in folder "Momentum Mod"

What I assume to be the issue (I could be wrong), in GameConfig.json, here below

	"sourcemods\\momentum":
	{
		"Inherit": "Counter-Strike Source\\cstrike",
		"DisplayName": "Momentum",
		"ExecutableName": "Source SDK Base 2013 Multiplayer\\hl2.exe"
	},

Add support for other codecs?

I've tried this software, and it works great in some cases.

But I found that it seems to only support x264 codec, yet codecs like h264_nvenc could improve the speed a lot faster.

something like cqp=0 preset=hq pix_fmt=yuv444 or rgb, recording hugely faster to get footages and after all editing jobs are done

Then we could highly compress them to make very small archieves.

Crashing on Tf2

When the demo reaches the tick that I've set to start recording the game freezes and then crashes, I've tried deleting and reinstalling sdr and have tried a lot of different demos as well, any ideas whats causing this / how i can try and prevent it? thanks

SDR Request for Old CSS v34

It would be very nice if SDR becomes compatible with old source engine (CSS v34). A lot of players will be using it for sure and will start recording their Frags, Bhop runs, etc..
And we'll appreciate that very much.

launcherui.exe

so it says to start launcherui.exe to run the program but i can't find the .exe anywhere

what am i doing wrong/how do i launch SDR on CS:S?

[SOLVED] Velocity Overlay

For some reason the velocity-overlay is not showing up on my recordings...
Pasting code underneath if someone could help out, that'd be great!

},
    "velocity-overlay": {
        "enabled": true,
        "font-family": "Arial",
        "font-size": 72,
        "color-r": 50,
        "color-g": 205,
        "color-b": 50,
        "color-a": 125,
        "font-style": "normal",
        "font-weight": "bold",
        "font-stretch": "normal",
        "text-align": "leading",
        "paragraph-align": "center",
        "padding": 100
    }
}

EDIT: Only supports CS:S, I am trying to use it in CS:GO, sorry.
Would there be support for it on CS:GO?

Could not start movie

This is the error message :

No supported container format. Prefer to use the mp4 or mkv containers
Could not verify movie
Could not open movie
Could not initialize with profile 'hq' // default not work too
Could not start movie

Add Audio Support

Would it be possible to add the audio support the older version had?

This is how the current workflow looks like when trying to render a demo with video and audio:

  • Start game with SVR attached and render video with startmovie video.mp4 <profile>
  • Restart the game but without SVR and record audio using the game's startmovie audio.wav wav

Not only restarting the game, but recording audio without the ability to disable video adds a lot total render time.

From testing, audio recording took as long as the video rendering for me.
(I also tried using -textmode to record audio, but that just makes it take longer...)

The old audio support SDR had would certainly speed up this process!

CSGO support now that it's on D3D9ex

Hey,
Great work here! I think this would be very handy on the CSGO community.
I see that you mentioned the reason for not supporting is because they were still on D3D9. Now that they finally upgraded to D3D9ex, any chance we could have CSGO support as well? :)
Or maybe some pointers of what needs to be done. I'd be happy to contribute, just don't have enough experience to get it started myself.

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.