Code Monkey home page Code Monkey logo

openxray / xray-16 Goto Github PK

View Code? Open in Web Editor NEW
2.8K 142.0 449.0 366.38 MB

Improved version of the X-Ray Engine, the game engine used in the world-famous S.T.A.L.K.E.R. game series by GSC Game World. Join OpenXRay! ;)

Home Page: https://discord.gg/sjRMQwv

License: Other

TeX 0.01% Shell 0.56% C 18.82% C++ 75.91% C# 0.28% Perl 0.07% CMake 0.62% Makefile 0.43% Batchfile 0.02% M4 0.05% Python 0.02% Lua 1.05% GLSL 0.76% Dockerfile 0.01% HLSL 1.39% Haskell 0.01%
directx11 opengl cpp cpp17 game-engine stalker xray-engine x64 d3d9 d3d11

xray-16's Introduction

OpenXRay

OpenXRay is an improved version of the X-Ray Engine, the game engine used in the world-famous S.T.A.L.K.E.R. game series by GSC Game World.

Goals

  1. Make it a drop-in replacement for original engine.
    1. Aim at 99% compatibility and same behaviour, where possible.
    2. Compile engine into a single executable file that you can just drop into bin folder. (see #210)
  2. Support all three games in the series: SOC/CS/COP. (see Supported games below)
  3. Fix original S.T.A.L.K.E.R. series bugs.
  4. Introduce a solid platform for modmakers:
    1. Add frame/render graph for those who want to add new graphics features.
    2. Improve performance via refactoring the code, parallelizing the engine, making it multithreaded.
    3. Add new scripting, development and debugging features.
    4. New game SDK with new features.
  5. Clean up engine code, make it easily portable to new platforms, minimize platform-specific code.
  6. Enhance player's experience with new graphics, gameplay and other features that can be enabled optionally. (by default, we stay close to vanilla)

Main differences from original X-Ray are:

  • Support for 64-bit.
  • Support for ARM, ARM64, E2K (Elbrus 2000), PPC64LE.
  • Works on Linux, macOS, OSL (Elbrus OS).
  • New OpenGL renderer. (currently, requires OpenGL 4.1 minimum, lowering to at least OpenGL 3.3 is planned)
  • Improved performance, better FPS.
  • Original bugs fixes.
  • New features for modmakers.
  • Gamepad support. (not yet finished, but you can try already, see #943)
  • New game SDK being currently developed. (see Game Editor)

You can see the detailed differences table here

Supported games

OpenXRay is based on X-Ray 1.6.02, used in S.T.A.L.K.E.R.: Call of Pripyat, so initially it supported only this game.
Currently, we are working on support for all three games in the series.

Call of Pripyat Clear Sky Shadow of Chernobyl
Yes Release candidate (see #382).
Minor bugs possible, but game is stable finishable.
Not supported yet (see #392)

Documentation:

Make sure to visit our wiki.

How to
Build and setup On Windows On Linux
Install and play On Windows -

Contributing

All contributions are more than welcomed. There are several ways how you can contribute:

Community

Discord

Play and enjoy the game, file an Issue when you encounter any bugs, or you have an enhancement request.

Join us on our Discord, subscribe to our YouTube channel, join our VK group, leave a comment, put a like and communicate there!
Also you can put a star on this repository :)

Development

GitHub Actions Build Status Contributors

Join our efforts in making our beloved game better, send pull requests, participate in discussions and code reviews!

It is a place to share ideas on what to implement, gather people that want to work on the engine, and work on the source code. However, the following things should be taken into consideration:

  • We want to keep the game close to the vanilla, so if you want to introduce new gameplay features, make sure it is optional, and doesn't break compatibility with original game resources (i.e. everything in gamedata folder and .db*/.xdb archives). You also may want to add non-gameplay features, fix bugs, or improve engine performance and code quality.
  • Major changes should be discussed before implementation.

Take a look at our Issues page:

  • See issues labeled as good first issue to get familiar with the engine code in practice.
  • You may also want to look at issues labeled as help wanted. Some of them are difficult ones, though.

The dev branch is the default and base branch for the project. It is used for development, and all pull requests should go there. But be aware that this branch sometimes may be broken, and we can only rarely do force pushes to this branch.

Be advised that this is a community project not sanctioned by GSC Game World in any way – and they remain the copyright holders of all the original source code and S.T.A.L.K.E.R. franchise. However, they know about many community projects, including this, and support the S.T.A.L.K.E.R. community efforts to make the game better.

Funding

Financial Contributors Sponsors Patreon

You may provide financial support for this project by donating via different ways:

  • Boosty – a large part of the team is located in Russia, if you have an ability to donate through Boosty, please use it, since we don't have an ability to withdraw funds from services like Patreon, etc. to our local Russian banking cards/accounts.
  • GitHub Sponsors, Patreon, Open Collective – funds raised from these services will be used to support our developers outside of Russia, and also we may use them to pay for paid services on GitHub, AppVeyor, etc.
  • BTC: 363ZUoWcQe9fDvRPK9Kee2YuPdyhSFQpr2
  • ETH: 0x45a4fe8566e76946591e1eeabf190aa09b1cdb66
  • TRX: TGx7QAhTPsRcwnb4mwCtNDU7NF6kuoACpt
  • Please, contact @xottab_duty in our Discord if you would like to use another cryptocurrency.

Thank you for your support!

Thanks

  • GSC Game World – for creating S.T.A.L.K.E.R. and supporting the community;
  • Loxotron – for making the engine sources available;
  • All the OpenXRay contributors – for making the project better.
    • The first OpenXRay team (2014-2017) – for being at the origins of the project.
      • nitrocaster – original project founder.
      • Kaffeine – initial work on the Linux port, refactoring, polishing.
      • Armada651 – creation of the OpenGL renderer, work on the build system, other project maintenance work.
      • andrew-boyarshin – work on the build system.
      • Swartz27 – work on renderer features.
      • awdavies – project maintenance work.
    • The second OpenXRay team (2017-now) – for continuing work on the project.
      • Xottab_DUTY – current project leader.
      • intorr – work on the project quality. (memory leaks, refactoring, optimizations)
      • eagleivg – main part of the work on Linux port.
      • q4a – main part of the work on Linux port.
      • SkyLoader – OpenGL renderer improvements and polishing, other project work.
      • qweasdd136963 – supporting the OXR_COC project (Call of Chernobyl port to latest OpenXRay), other project work on new features, refactoring and bug fixing.
      • JohnDoe_71Rus – our regular tester.
      • Chip_exe – work on Linux port, maintaining AUR package, our regular tester.
      • a1batross – work on Linux port.
      • The Sin! – new features, refactoring, bug fixing polishing.
      • Zegeri – work on Linux port, code quality, fixes, polishing.
      • drug007 – work on Linux port.
      • vTurbine – work on renderer unification, refactoring, polishing.
      • Zigatun – work on ARM port.
      • Masterkatze – work on the build system, bug fixing.
      • Chugunov Roman – work on porting Call of Chernobyl to latest OpenXRay, extending functionality for modmakers.
      • yohjimane – work on original game bugs fixes and new features.
    • Other contributors:
      • alexgdi – work on organizing project infrastructure, external dependencies.
      • NeoAnomaly – help with debug functionality on Windows.
      • RainbowZerg – work on the renderer features, bug fixing.
      • FozeSt – help with some fixes and features.
      • mrnotbadguy – work on gamepads support and bug fixing.
      • devnexen – work on FreeBSD support and portability.
      • ZeeWanderer – work on the build system.
      • GeorgeIvlev – work on the build system, bug fixing.
      • TmLev – work on code quality and Docker support.
      • Plotja – work on new gameplay features, bug fixes, portability, polishing.
      • dimhotepus – work on code quality.
      • HeapRaid – work on renderer cleanup, code quality, portability.
      • Vertver – work on macOS support.
      • Lnd-stoL – work on macOS support.
      • GermanAizek – work on code quality, finding and fixing vanilla bugs.
      • dasehak – work on FreeBSD support, finding and fixing vanilla bugs.
  • Particular projects:
    • Oxygen – for being our friends and giving tips and help with new features, optimizations, bug fixes, etc.
    • Shoker Weapon Mod and Shoker – for contributing new features, bug fixing.
    • Im-Dex – for the work on the engine.
    • OGSR – for amazing work on Shadow of Chernobyl.
    • Call of Chernobyl and its contributors – for useful new features, bug fixes and optimizations.
    • Lost Alpha – for their effort on restoring the old game concept.
    • Lost Alpha DC – for continuing work on Lost Alpha.
  • Individuals:
    • tamlin-mike – for work on the build system.
    • Vincent – for work on the Linux port.
    • abramcumner – for useful fixes and additions.
    • Morrey – for work on Clear Sky support and his Return to Clear Sky mod.
  • Companies:

If your work is being used in our project and you are not mentioned here or in the contributors page, please, write to us and we will add you. Or send us a pull request with you added to this list ;)

xray-16's People

Contributors

ams21 avatar avoitishin avatar awdavies avatar casualdev242 avatar chugunovroman avatar crossvr avatar dependabot[bot] avatar dimhotepus avatar drug007 avatar eagleivg avatar freezonemods avatar germanaizek avatar gunslingermod avatar intorr avatar invokr avatar kaffeine avatar masterkatze avatar plotja avatar q4a avatar qweasdd136963 avatar r-a-sattarov avatar revolucas avatar shokerstlk avatar skyloaderr avatar tamlin-mike avatar vturbine avatar xottab-duty avatar yohjimane avatar zegeri avatar zigatun 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  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

xray-16's Issues

3DS Max and LightWave exporters cannot be compiled

Some changes were made in editor sources (looks like GSC didn't use 3DS Max and LightWave at all) so that exporters cannot be compiled.
Need to fix that (just for consistency).

Does anybody want to work on exporters for new 3DS Max versions?

Decouple ODE

Need to analyze changes made by GSC to make sure it actually can be decoupled.

Potential Stack Frame Corruption from Lua

Examining the stack trace of an error caused by loading a game in the current build, some addresses appear to become corrupted after some Lua-related functions are called.

ex:
the original stack content:
0018B418 048F13C9 ЙSЏ; /RETURN from xrGame.CGameObject::shedule_Update to xrGame.048F13C9

gets modified to:
0018B418 008F13C9 ЙSЏ; /RETURN from xrGame.CGameObject::shedule_Update to xrGame.048F13C9

after the call_member function is called. This appears to be some sort of stack corruption, which will have nasty (and undetermined) effects in code execution. Notice the address change from 048F13C9 to 008F13C9.

This is somewhat related to the ongoing effort to fix #11.

DX11 renderer doesn't work

The problem is that IID_ID3D11ShaderReflection guid from Windows SDK is not accepted by d3dcompiler from DirectX SDK.
In future it would be reasonable to get rid of old DirectX SDK and use Windows SDK only.

Switch to a build automation tool

Would be simpler and cleaner to switch to a tool like Premake instead of just dealing with a VS solution and a lot of vcxproj files.
CMake offers a nice way to deal with third-party dependencies.
Premake makes use of Lua and thus, is a bit simpler (at least, it's what I noticed) than CMake but anyway, the main point of this issue is: determining whether or not we should switch to such a tool.

Pros

  • Don't have to bother with a lot of VS-specific files in the repo
  • Changes made to the solution / projects are much more readable and noticeable (spotting a change in a clean script is usually simpler than in a messy XML file)
  • Users can build the solution and projects for a specific IDE (depends on the tool used)
  • Some tools offers a cool way to deal with third-party dependencies (no need to grab each dependency manually, and we could even automate the download process)
  • If we ever want to port X-Ray to another platform, using such a tool will avoid spending time on porting the solution / projects files to a different environment

Cons

  • Some build tools are more less heavy and we may not be able to pack them in the repo
  • All the contributors who are not familiar with such procedures may (depends on the tool itself) need to spend some time to understand how to work with a build automation tool

Build automation tools

AA issues

It looks like AA option (r3_msaa) doesn't work well - sometimes it works, sometimes it doesn't.
Need to find how to reproduce it and fix.

Per-vertex to per-pixel lighting

Per-vertex lighting I believe causes a good deal of problems in XRay. A good example is light bleed through walls and ceilings. Another is easy to see on weapon models, where both sides get lit up at once, or how at certain angles it only lights small parts of the model and not others.

Concerns: performance cost

Thoughts?

P.S. Yes I will commit the actor shadows nitro, I just have been quite busy and I'm still trying to figure out how to use Git Shell.

Progress?

Is this dead guys? It would be really sad if so. Alundaio has successfully made changes to the source including grass and actor shadow, and FoV command in console.

Discussion of "proposed engine changes"

I think we should have a place other than IRC to discuss engine changes a bit.

The things in "proposed engine changes" that have a * after them are things that I've already done, and most of which I've ported to COP already for a friend. Most of those are weapons related, since I'm focusing on working on a weapon related mod.

Soon I will assign tasks to myself, but it sounds like others are interested in weapons as well. Perhaps we should have a seperate branch for these changes as not everyone will want them?
Things I can't do myself but want to see: Abakan firing 2 shots at 1800rpm, fixed abrupt transition between walking, running animations and then idle anim with grenade launcher attached.

To add to the list of other things I've done, I made it so you can't reload while sprinting.

In terms of a comment Kevin/Loner left in the file, in terms of Gore there is skeleton wallmark code (bullet holes on bodies) partly implemented but commented out in places. Unfortunately my attempts with it so far have not been successful, and it would need to be rewritten entirely for DX10&11 it looks like.

Fix CTD under Release configuration.

CTD occurs when compiling under Release configuration.

Ideally this shouldn't happen, as we would like to have a debug free binary for releases :)

This occurs during the scheduler's update function call (stack trace in comments).

Holy shit

@nitrocaster I am impressed. You are on fire optimizing the engine right now in ai_cleanup! Great work!

I just wanted to say that I looked at your todo list, and there are several of the features you are looking for in the revoculas branch on here, which I have contributed to as well.

It has fixes for the DirectX compiler error (you need to add dxguid.lib to the stdafx.h, it fixes it).
I also fixed blurred R4 font on there, it's in that branch's xrRender/dxFontRender.cpp.

There is also corrected sun path, actor shadows on all renderers, and many other improvements.

On the newest avotishin branch that the revoculas branch is based on, there is also LuaJit 2.0+

You probably already know, just wanted to give you a heads up so you don't reinvent the wheel.

Sun mask in DX10 & 11

Apparently USE_SUNMASK in config.h or config_defines.h does not work in DX10&11 (after deleting the shaders_cache of course). I'm pretty sure it works fine in DX9 though.

Anyway, it would be nice if we could get it working properly for 10&11. The error it spits out is the typical "your video card doesn't support this, blah blah blah" shader error.

Cromm Cruac, of Atmosfear 3 fame, also suggested not just to universally get this working without having to modify the shaders each time we want to use it.
That last part I know how to do, I just don't know what causes the issue with 10&11.

Big world shadow

... appears and disappears depending on the sun direction. Need more details on how to reproduce.

Is this still running ?

Hi. Is this still running? Do you actually have the source code for the whole engine? For free use?

VSync not working

Right now vsync is not working, GSC fixed this issue a while ago with their multiplayer patch, i have been looking at some functions like rsConstantFPS which seem to be something in that direction but do not work correctly ingame

Compiling

How do we go about creating a working executable or set of executables from the source? I'd be intrigued to try out the supposed new grass shadows, and then start looking at making changes of my own.

Fix log messages format

Normally, the 'color' character should be followed by a space: "! WARNING: ...", "* ...", etc.

Formatting your code

Nitro - are you using Astyle to format code? If so, please share your settings

Getting rid of Microsoft specific types

Defines and typedefs such as BOOL, CONST, UINT and DWORD are used pretty much everywhere in the codebase.
Most of these defines where introduced a long time ago (BOOL was added before bool was thrown into C++) and now, most of them are meaningless.
Nowadays, every decent compiler should support C++'s fundamental types without any problem.
Of course, DirectX types and some other funky types (HWND, HHOOK and so on) can't be replaced but there's no excuse for more common types I've pointed out earlier.


Pros

  • Less error-prone (every Microsoft specific type names are upper case)
  • Makes high-level parts of the engine less dependent on MSVC / Windows API
  • Improves compile/runtime speed and makes debugging tasks easier (BOOL is a int typedef whereas bool is a true type)
  • Syntax highlighting / code readability is slightly improved; GitHub syntax highlighter (and probably many others) don't know about BOOL, HANDLE or DWORD but it does its job perfectly well on the standard types.

Cons

  • Nothing. Really, I can't think of any drawbacks.

What to do?

There's nothing hard. We just need to search for these types and replace them by their standard
equivalent.
If you _really_ have to use a non-standard type in a piece of code, it should be better to keep this code 'away (i.e. not in a header nor in the middle of a high-level source file)
To make things easier, here's a table with what should be considered for replacement and their equivalents.

Microsoft types Standard equivalents stdint types
INT8 signed char int8_t
PINT8 signed char * int8_t *
BYTE / UCHAR / UINT8 unsigned char uint8_t
LPBYTE / PBYTE unsigned char * uint8_t *
INT16 / SHORT signed short int16_t
PINT16 / PSHORT signed short * int16_t *
USHORT / WORD / UINT16 unsigned short uint16_t
LPWORD / PWORD unsigned short * uint16_t *
INT / INT32 / LONG / LONG32 signed int int32_t
LPINT / PINT / LPLONG / PLONG / PINT32 /PLONG32 / PLONG signed int * int32_t *
DWORD / DWORD32 / UINT / UINT32 / ULONG32 / ULONG unsigned int uint32_t
LPDWORD / PDWORD / PDWORD32 unsigned int * uint32_t *
INT64 / LONGLONG / LONG64 signed long long int64_t
PINT64 / PLONG64 / PLONGLONG signed long long * int64_t *
DWORDLONG / DWORD64 / QWORD / UINT64 / ULONGLONG / ULONG64 unsigned long long uint64_t
INT_PTR / LONG_PTR N/A1 intptr_t
DWORD_PTR / UINT_PTR N/A1 uintptr_t
BOOL / BOOLEAN bool N/A
LPBOOL / PBOOL / PBOOLEAN bool * N/A
CCHAR / CHAR char N/A
LPSTR / PCHAR char * N/A
LPCSTR / PCSTR const char * N/A
CONST const N/A
FLOAT float N/A
PFLOAT float * N/A
VOID void N/A
LPCVOID const void * N/A
WCHAR wchar_t N/A
LPWSTR / PWSTR / PWCHAR wchar_t * N/A
LPCWSTR / PCWSTR const wchar_t * N/A
1 - Representation of an integer type for pointer precision
  • INT_PTR / LONG_PTR are mapped to a 32-bit signed integer on 32-bits systems and to a 64-bit signed integer on 64-bits systems.
  • DWORD_PTR / UINT_PTR are mapped to a 32-bit unsigned integer on 32-bits systems and to a 64-bit unsigned integer on 64-bits systems.

It's clear that the easiest way to do that would be to use cstdint along with the standard types. Feel free to share anything, any ideas about all this.

Distant object alpha transparency

Alpha transparency works improperly - objects like steelworks and meshes quickly lose details and become invisible when camera moves away (r1 doesn't have this problem).

LuaJit replace on a compiled dll

[Google Translate] I analyzed the source code LuaJit. There's only one slight change. Maybe we should bring this LuaJit project as a separate library compiled dll? This will allow the library to make updates to newer versions.

v140

[Google Translate] last push to ai_cleanup increased the tools to build the version v140. now I must update my version of sdk?

Get Dedicated Server Running

Dedicated server appears to crash when run with Debug configuration. From @nitrocaster the following log output is common:

"ID3DDepthStencilState #%d created"

And may be of use.

When posting debug logs, please use some paste service like pastebin, please.

Is xrScriptEngine working correctly at the moment?

I'm talking about your ai branch of course.

I realize you're not finished what you want to do it, but all the changes got me excited to try and start engine changes from scratch with your repo as the base.

However, when I tried to compile xrScriptEngine it claims there are several undeclared identifiers, including: m_script_name, m_virtual_machine, and m_active.

Sorry to bother you and thank you for your time.

P.S. If I follow proper coding conventions would it be cool if I took care of a few things on your task list in the form of pull requests?
I could do: blurred text fix for R4; incorrect sun path (you say for R1, but do you want sun path to follow environment config variables as that's what I'm referring to); actor shadow for R2-R4; grass shadows; grass draw distance settings; removal of R1; improve weapon system (new optional animation types, new optional sound types, re-enable zoom and reload dof, add console-controlled manual reloading); I also believe OGSE had a transparent geometry fix so I could look into that too.

If any of that interests you let me know, as since I'm toying with your source in various ways while toying with my own project, I don't mind helping out to the extent that I'm capable (and I'm not anywhere near as terrible about things as I was a long while back when I tried a couple of bad commits to your repo ;) ).

Also, a suggestion: when browsing through ODE a bit I noticed it seems to have some shared code with Nvidia PhysX. Maybe instead of updating ODE to the new version you could use PhysX instead, as that would also easily allow other things such as non-performance draining particle collision, particle shadows, vegetation collision, etc. Just a thought.

One last thing: check out this game development newsletter that was sent out about common causes of stutter and micro-stutter in games and how they can be fixed: http://go.nvidianews.com/Lds0NF00d0sE3OCcD060E0M

Shit..

Didn't mean to merge into your branch, I was trying to merge my master branch into my ai_cleanup.

I'm still new to using Git, how do I reverse this?

Merge xrXMLParser into xrCore

Also consider if it's possible to delete tinyxml (which xrXMLParser is based on) sources and add it as a submodule or 3rd party library.

Enhancement request: fix cloud lerping

I have had two programmers look at this issue and neither could figure out why clouds_texture does not correctly lerp between two different sets of clouds_texture.

For example if I set 9:00 in the config to have one clouds_texture, and I set 10:00 to have a different one, rather than a smooth transition between the two, the second it turns to 10:00 it immediately changes to the new texture, which obviously works terrible.

If at some point you were interested in tackling this, or anyone else that's reading this, I would be really grateful.

A way to debug x-ray engine

I would like to have a prebuild version of engine, I'm trying to debug wine nine state tracker code and this would help a lot
Also is there a way to disable bugtrap.dll? It is really inconvenient to debug engnine/wine/mesa while bugtrap.dll hijacks signals

link to xrcorestatic.lib

branch ai_cleanup, please remove links to xrcorestatic.lib from additional dependencies in projects: Maya_Material_2008, Maya_Material_2009. Thx

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.