Giter Site home page Giter Site logo

michaelsakharov / prowl Goto Github PK

View Code? Open in Web Editor NEW
173.0 5.0 15.0 41.57 MB

An Open Source C# game engine under MIT license, inspired by Unity and featuring a Dear ImGUI editor and built on Silk.NET

License: MIT License

C# 95.90% GLSL 4.10%
3d game-engine game-engine-3d gameengine imgui imgui-editor opengl silk 3d-engine 3d-graphics

prowl's People

Contributors

10xjosh avatar isaacmarovitz avatar jaggerjo avatar jihadkhawaja avatar kuvrot avatar michaelsakharov avatar recore67 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

prowl's Issues

Mac OS and VS Code while running Prowl.Editor and Prowl.Player

Describe the bug

Prowl.Player on MacOS through VS Code

note: vs code will cache the last "Run and Debug" so go to the sidebar to switch between Prowl.Editor and Prowl.Player before running again

To Reproduce
Steps to reproduce the behavior:

  1. Go to 'Prowl.Editor/Program.cs'
  2. Click 'F5' (on mac you hold the fn key then press F5)
    • If you are doing this for the second time you may get an error Build Failure this is because vs code ran Prowl.Editor instead of Prowl.Player '/Users/abdiellopez/Projects/Prowl/Prowl.Editor/Prowl.Editor.csproj' failed to build. Would you like to continue and run the last successful build? if this happens click 'No' -> To Reproduce (from debug menu)
  3. From the options select 'C#'
  4. From the subsequent options select Prowl.Player
  5. See error

To Reproduce (from run and debug menu)

  1. Click 'No' go to the Run and Debug sidebar
  2. Select Prowl.Player
  3. Go back to Program.cs and click 'F5' (on mac you hold the fn key then press F5)
  4. Select C# then Prowl.Player

here is the error

Exception has occurred: CLR/System.DllNotFoundException
An unhandled exception of type 'System.DllNotFoundException' occurred in Prowl.Runtime.dll: 'Unable to load shared library 'cimguizmo' or one of its dependencies. In order to help diagnose loading problems, consider setting the DYLD_PRINT_LIBRARIES environment variable: 
dlopen(/Users/abdiellopez/Projects/Prowl/Prowl.Standalone/bin/Debug/net8.0/runtimes/osx/native/cimguizmo.dylib, 0x0001): tried: '/Users/abdiellopez/Projects/Prowl/Prowl.Standalone/bin/Debug/net8.0/runtimes/osx/native/cimguizmo.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/abdiellopez/Projects/Prowl/Prowl.Standalone/bin/Debug/net8.0/runtimes/osx/native/cimguizmo.dylib' (no such file), '/Users/abdiellopez/Projects/Prowl/Prowl.Standalone/bin/Debug/net8.0/runtimes/osx/native/cimguizmo.dylib' (no such file)
dlopen(/Users/abdiellopez/Projects/Prowl/Prowl.Standalone/bin/Debug/net8.0/runtimes/osx-arm64/native/cimguizmo.dylib, 0x0001): tried: '/Users/abdiellopez/Projects/Prowl/Prowl.Standalone/bin/Debug/net8.0/runtimes/osx-arm64/native/cimguizmo.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/abdiellopez/Projects/Prowl/Prowl.Standalone/bin/Debug/net8.0/runtimes/osx-arm64/native/cimguizmo.dylib' (no such file), '/Users/abdiellopez/Projects/Prowl/Prowl.Standalone/bin/Debug/net8.0/runtimes/osx-arm64/native/cimguizmo.dylib' (no such file)
dlopen(/usr/local/share/dotnet/shared/Microsoft.NETCore.App/8.0.0/cimguizmo.dylib, 0x0001): tried: '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/8.0.0/cimguizmo.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/usr/local/share/dotnet/shared/Microsoft.NETCore.App/8.0.0/cimguizmo.dylib' (no such file), '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/8.0.0/cimguizmo.dylib' (no such file)
dlopen(/Users/abdiellopez/Projects/Prowl/Prowl.Standalone/bin/Debug/net8.0/cimguizmo.dylib, 0x0001): tried: '/Users/abdiellopez/Projects/Prowl/Prowl.Standalone/bin/Debug/net8.0/cimguizmo.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/abdiellopez/Projects/Prowl/Prowl.Standalone/bin/Debug/net8.0/cimguizmo.dylib' (no such file), '/Users/abdiellopez/Projects/Prowl/Prowl.Standalone/bin/Debug/net8.0/cimguizmo.dylib' (no such file)
dlopen(cimguizmo.dylib, 0x0001): tried: 'cimguizmo.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OScimguizmo.dylib' (no such file), '/usr/lib/cimguizmo.dylib' (no such file, not in dyld cache), 'cimguizmo.dylib' (no such file), '/usr/local/lib/cimguizmo.dylib' (no such file), '/usr/lib/cimguizmo.dylib' (no such file, not in dyld cache)
dlopen(/Users/abdiellopez/Projects/Prowl/Prowl.Standalone/bin/Debug/net8.0/runtimes/osx/native/libcimguizmo.dylib, 0x0001): tried: '/Users/abdiellopez/Projects/Prowl/Prowl.Standalone/bin/Debug/net8.0/runtimes/osx/native/libcimguizmo.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/abdiellopez/Projects/Prowl/Prowl.Standalone/bin/Debug/net8.0/runtimes/osx/native/libcimguizmo.dylib' (no such file), '/Users/abdiellopez/Projects/Prowl/Prowl.Standalone/bin/Debug/net8.0/runtimes/osx/native/libcimguizmo.dylib' (no such file)
dlopen(/Users/abdiellopez/Projects/Prowl/Prowl.Standalone/bin/Debug/net8.0/runtimes/osx-arm64/native/libcimguizmo.dylib, 0x0001): tried: '/Users/abdiellopez/Projects/Prowl/Prowl.Standalone/bin/Debug/net8.0/runtimes/osx-arm64/native/libcimguizmo.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/abdiellopez/Projects/Prowl/Prowl.Standalone/bin/Debug/net8.0/runtimes/osx-arm64/native/libcimguizmo.dylib' (no such file), '/Users/abdiellopez/Projects/Prowl/Prowl.Standalone/bin/Debug/net8.0/runtimes/osx-arm64/native/libcimguizmo.dylib' (no such file)
dlopen(/usr/local/share/dotnet/shared/Microsoft.NETCore.App/8.0.0/libcimguizmo.dylib, 0x0001): tried: '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/8.0.0/libcimguizmo.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/usr/local/share/dotnet/shared/Microsoft.NETCore.App/8.0.0/libcimguizmo.dylib' (no such file), '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/8.0.0/libcimguizmo.dylib' (no such file)
dlopen(/Users/abdiellopez/Projects/Prowl/Prowl.Standalone/bin/Debug/net8.0/libcimguizmo.dylib, 0x0001): tried: '/Users/abdiellopez/Projects/Prowl/Prowl.Standalone/bin/Debug/net8.0/libcimguizmo.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/abdiellopez/Projects/Prowl/Prowl.Standalone/bin/Debug/net8.0/libcimguizmo.dylib' (no such file), '/Users/abdiellopez/Projects/Prowl/Prowl.Standalone/bin/Debug/net8.0/libcimguizmo.dylib' (no such file)
dlopen(libcimguizmo.dylib, 0x0001): tried: 'libcimguizmo.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OSlibcimguizmo.dylib' (no such file), '/usr/lib/libcimguizmo.dylib' (no such file, not in dyld cache), 'libcimguizmo.dylib' (no such file), '/usr/local/lib/libcimguizmo.dylib' (no such file), '/usr/lib/libcimguizmo.dylib' (no such file, not in dyld cache)
dlopen(/Users/abdiellopez/Projects/Prowl/Prowl.Standalone/bin/Debug/net8.0/runtimes/osx/native/cimguizmo, 0x0001): tried: '/Users/abdiellopez/Projects/Prowl/Prowl.Standalone/bin/Debug/net8.0/runtimes/osx/native/cimguizmo' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/abdiellopez/Projects/Prowl/Prowl.Standalone/bin/Debug/net8.0/runtimes/osx/native/cimguizmo' (no such file), '/Users/abdiellopez/Projects/Prowl/Prowl.Standalone/bin/Debug/net8.0/runtimes/osx/native/cimguizmo' (no such file)
dlopen(/Users/abdiellopez/Projects/Prowl/Prowl.Standalone/bin/Debug/net8.0/runtimes/osx-arm64/native/cimguizmo, 0x0001): tried: '/Users/abdiellopez/Projects/Prowl/Prowl.Standalone/bin/Debug/net8.0/runtimes/osx-arm64/native/cimguizmo' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/abdiellopez/Projects/Prowl/Prowl.Standalone/bin/Debug/net8.0/runtimes/osx-arm64/native/cimguizmo' (no such file), '/Users/abdiellopez/Projects/Prowl/Prowl.Standalone/bin/Debug/net8.0/runtimes/osx-arm64/native/cimguizmo' (no such file)
dlopen(/usr/local/share/dotnet/shared/Microsoft.NETCore.App/8.0.0/cimguizmo, 0x0001): tried: '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/8.0.0/cimguizmo' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/usr/local/share/dotnet/shared/Microsoft.NETCore.App/8.0.0/cimguizmo' (no such file), '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/8.0.0/cimguizmo' (no such file)
dlopen(/Users/abdiellopez/Projects/Prowl/Prowl.Standalone/bin/Debug/net8.0/cimguizmo, 0x0001): tried: '/Users/abdiellopez/Projects/Prowl/Prowl.Standalone/bin/Debug/net8.0/cimguizmo' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/abdiellopez/Projects/Prowl/Prowl.Standalone/bin/Debug/net8.0/cimguizmo' (no such file), '/Users/abdiellopez/Projects/Prowl/Prowl.Standalone/bin/Debug/net8.0/cimguizmo' (no such file)
dlopen(cimguizmo, 0x0001): tried: 'cimguizmo' (no such file), '/System/Volumes/Preboot/Cryptexes/OScimguizmo' (no such file), '/usr/lib/cimguizmo' (no such file, not in dyld cache), 'cimguizmo' (no such file), '/usr/local/lib/cimguizmo' (no such file), '/usr/lib/cimguizmo' (no such file, not in dyld cache)
dlopen(/Users/abdiellopez/Projects/Prowl/Prowl.Standalone/bin/Debug/net8.0/runtimes/osx/native/libcimguizmo, 0x0001): tried: '/Users/abdiellopez/Projects/Prowl/Prowl.Standalone/bin/Debug/net8.0/runtimes/osx/native/libcimguizmo' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/abdiellopez/Projects/Prowl/Prowl.Standalone/bin/Debug/net8.0/runtimes/osx/native/libcimguizmo' (no such file), '/Users/abdiellopez/Projects/Prowl/Prowl.Standalone/bin/Debug/net8.0/runtimes/osx/native/libcimguizmo' (no such file)
dlopen(/Users/abdiellopez/Projects/Prowl/Prowl.Standalone/bin/Debug/net8.0/runtimes/osx-arm64/native/libcimguizmo, 0x0001): tried: '/Users/abdiellopez/Projects/Prowl/Prowl.Standalone/bin/Debug/net8.0/runtimes/osx-arm64/native/libcimguizmo' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/abdiellopez/Projects/Prowl/Prowl.Standalone/bin/Debug/net8.0/runtimes/osx-arm64/native/libcimguizmo' (no such file), '/Users/abdiellopez/Projects/Prowl/Prowl.Standalone/bin/Debug/net8.0/runtimes/osx-arm64/native/libcimguizmo' (no such file)
dlopen(/usr/local/share/dotnet/shared/Microsoft.NETCore.App/8.0.0/libcimguizmo, 0x0001): tried: '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/8.0.0/libcimguizmo' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/usr/local/share/dotnet/shared/Microsoft.NETCore.App/8.0.0/libcimguizmo' (no such file), '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/8.0.0/libcimguizmo' (no such file)
dlopen(/Users/abdiellopez/Projects/Prowl/Prowl.Standalone/bin/Debug/net8.0/libcimguizmo, 0x0001): tried: '/Users/abdiellopez/Projects/Prowl/Prowl.Standalone/bin/Debug/net8.0/libcimguizmo' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/abdiellopez/Projects/Prowl/Prowl.Standalone/bin/Debug/net8.0/libcimguizmo' (no such file), '/Users/abdiellopez/Projects/Prowl/Prowl.Standalone/bin/Debug/net8.0/libcimguizmo' (no such file)
dlopen(libcimguizmo, 0x0001): tried: 'libcimguizmo' (no such file), '/System/Volumes/Preboot/Cryptexes/OSlibcimguizmo' (no such file), '/usr/lib/libcimguizmo' (no such file, not in dyld cache), 'libcimguizmo' (no such file), '/usr/local/lib/libcimguizmo' (no such file), '/usr/lib/libcimguizmo' (no such file, not in dyld cache)'
   at Prowl.Runtime.ImGUI.ImGuizmo.ImGuizmoNative.ImGuizmo_SetImGuiContext(IntPtr ctx)
   at Prowl.Runtime.ImGUI.ImGuizmo.ImGuizmo.SetImGuiContext(IntPtr ctx) in /Users/abdiellopez/Projects/Prowl/Prowl.Runtime/ImGUI/ImGuizmo/ImGuizmo.gen.cs:line 246
   at Prowl.Runtime.ImGUI.ImGUIController.Load(Int32 width, Int32 height) in /Users/abdiellopez/Projects/Prowl/Prowl.Runtime/ImGUI/ImGUIController.cs:line 62
   at Prowl.Runtime.Application.Initialize() in /Users/abdiellopez/Projects/Prowl/Prowl.Runtime/Application.cs:line 46
   at Prowl.Standalone.Program.Main(String[] args) in /Users/abdiellopez/Projects/Prowl/Prowl.Standalone/Program.cs:line 10

Expected behavior
I'm not really sure.

Screenshots
If applicable, add screenshots to help explain your problem.
Screenshot 2023-11-23 at 10 29 49 AM

Describe the bug

Prowl.Editor on MacOS through VS Code

To Reproduce
Steps to reproduce the behavior:

note: vs code will cache the last "Run and Debug" so go to the sidebar to switch between Prowl.Editor and Prowl.Player before running again

  1. Go to 'Prowl.Editor/Program.cs'
  2. Click 'F5' (on mac you hold the fn key then press F5)
    • vs code may automatically run Prowl.Player. To switch open the Run and Debug sidebar as mentioned above
    • if this is the case just go open the sidebar and switch, then run Program.cs again and it should run Prowl.Editor
    • see error
  3. From the options select 'C#'
  4. From the subsequent options select Prowl.Editor
  5. See error

here is the error

CSC : error CS1566: Error reading resource 'Prowl.Editor.EmbeddedResources.DefaultAssets.Cube.obj' -- 'Could not find file '/Users/abdiellopez/Projects/Prowl/Prowl.Editor/EmbeddedResources/DefaultAssets/Cube.obj'.' [/Users/abdiellopez/Projects/Prowl/Prowl.Editor/Prowl.Editor.csproj]

Expected behavior
I'm not really sure.

Desktop (please complete the following information):

  • OS: Mac OS Sonoma 14.1 running Apple M2 Pro chip
  • Browser why am I being asked this? I use Chrome
  • Version Chrome 119.0.6045.159 (Official Build) (arm64)? XD not sure but ok

Additional context
Add any other context about the problem here.

[Rendering] Replace Raylib

Raylib has been a huge help getting off the ground, but it's also limiting us in a lot of areas. We need to drop it in exchange for a custom ideally API Agnostic backend.

I've already started working on something based on Silk.NET.

[Engine] Physics Engine

  • Basic Integration with Rigidbody + Collider Component Structure
  • Collider Gizmos
  • Support for Adding/Removing Colliders in realtime
  • Support Kinematic/Static bodies
  • Physics.Raycast
  • Raycast based Wheels
  • Physical Character Controller
  • Constraints
    • DistanceLimit
    • BallSocket
    • Hinge
    • PointOnLine
    • PointOnPlane
    • AngularMotor
    • ConeLimit
    • FixedAngle
    • LinearMotor
    • TwistAngle

[Rendering] Gizmo Rendering

We have ImGuizmo but we need something for things like Debug.DrawLine(), Ideally whatever we implement also works in the game not just in the editor.

[AssetPipeline] Sub-Assets

Assets like a Model/Mesh can store Materials, Animations, and possibly more inside of them.
This is already supported, however, we also need a way to access these Sub-Assets.
They need to be treated like any other assets, so they need GUID's assigned and AssetRef needs to be able to Reference them.

[Engine] Build to Standalone

Needs some work on the Asset Database side, specifically, we need Dependencies and Packages working.

Dependencies so when building we can specify the scene to load on startup, which using dependencies can build all the assets that matter and skip everything else. Then we can add a Resources folder to always include in builds.

Packages because those are ZipArchive's, while they are being used for sharing assets between projects could also be reused for a Standalone asset provider. We could support allowing Encryption on the assets to not be able to import them back into the editor, or open with like winrar/7zip.

[Editor] Rewrite PropertyDrawers to be more useful

PropertyDrawers in the Editor as of now require a Reflection MemerInfo, which makes them a little weird to use.
A Better API like

bool changed = PropertyDrawers.Draw(ref value);

Or something along those lines might be a lot nicer and easier to use

[Editor] Multi Object Selection

We need to be able to select multiple objects, and Inspector needs a way to render common fields between the selected objects.

[Rendering] Overhaul rendering, Use RenderPipeline ScriptableObjects per camera

As of now, rendering is mostly hardcoded and partially components.

We should completely redo it so that each camera can have a RenderPipeline ScriptableObject assigned, with a default one if non-assigned.

Multiple RenderPipelines should be able to exist and multiple cameras can share a single one, RenderPipelines describe how to render, and would have a list of RenderPasses. Cameras would still be the main Renderer, the RenderPipeline solely describes how to render, it should not be the actual Renderer.

I like the idea of using Nodes and creating something like a Visually scripted Render Pipeline system like Cocos Customizable Render Pipeline:

https://discuss.cocos2d-x.org/t/tutorial-use-custom-render-pipeline-to-enhance-your-game-graphics-guide-to-cocos-cyberpunk-source-code/58712

The SceneView should use the Main Cameras render pipeline or default if non-assigned.

[AssetPipeline] Packages

Exporting/Importing Packages between projects is important for Prowl since this is intended to be a Modular engine, we need a way to easily import "Modules" or Packages

.obj Files Are Missing In "Default Assets" Folder; Includes File Is Missing As Well

Describe the bug
I forked the repository and cloned it to my computer using Visual Studio. When I ran it I got an error that said the cube.obj object couldn't be found.

When I look in the solution explorer I see a few .obj files that are outlined with a red X.

To Reproduce
Steps to reproduce the behavior:

  1. Fork repository
  2. Open Visual Studio, Clone repo to computer
  3. Run project

Expected behavior
Should load the editor without issue

Screenshots
2023-11-23 10_07_35-Prowl - Microsoft Visual Studio

2023-11-23 10_03_56-

Desktop (please complete the following information):

  • OS: Windows 10
  • Visual Studio Version 17.8.0

Additional context
Looking at the files on Github, I noticed they were missing as well. No .obj can be found nor "Includes" folder: https://github.com/michaelsakharov/Prowl/tree/main/Prowl.Editor/EmbeddedResources/DefaultAssets

[Rendering] Terrain Engine

Terrain is gonna be an interesting topic for Prowl.

We want Voxel support however regular voxels can be quite expensive, and we also want regular Quadtree terrain for maximum performance.

The idea I'm thinking of now is a Regular quadtree terrain, But with a VoxelSystem that can complement it.
Kinda like Digger PRO for unity, but that can also work independently.

So Essentially two Independent systems but that can work seamlessly together.

Ideally, both systems are flexible and can be rotated/scaled and altered in all the ways you might expect.
It should be possible to do Planets for example with just the Quadtree, Just voxels, or both together.

For now, I think the voxel side should be more Scripting than In Editor, the Terrain will have support built-in you can toggle on.

[Editor] ImNodes Support

For Visual scripting and other Node related stuff we can use ImNodes, but we need bindings for it.

[Rendering] Stochastic Tranparency

Taking advantage of TAA I think stochastic transparency may be somewhat viable.

It comes with a lot of benefits, like free transparent shadows, and full lighting integration, is free to render, handles ordering properly, and best of all it's almost no code is required. But the con is it may make transparency noisy, but with a good enough TAA that might not be an issue. We could probably do other things to reduce noise as well, like offload the transparency to its own buffer and apply some denoiser, probably something temporally to better keep edges intact.

[Editor] Crash on Recompiling project scripts

Describe the bug
The Editor crashes when recompiling project scripts after a Custom component has been added to a GameObject

To Reproduce

  1. Create .cs MonoBehvaiour script file in your project
  2. Add the MonoBehaviour to a gameobject
  3. Modify the script again or press Recompile Scripts
  4. Crash

[AssetPipeline] Prefabs/Scenes

Taking from Godot, Prefabs and Scenes will be the same thing, just a GameObject with its children.
So we need to support Prefabs as well as supporting Nested Prefabs.

[Editor] Complete Window Overhauls

The windows in the editor are all reasonably hacked together and have kept being bandaged back together during development, they all need to be completely overhauled/rewritten.

  • Hierarchy
  • Inspector
  • Asset Browser
  • SceneView
  • #62
  • Console
  • Project Selection
  • Project Settings

[Editor] Basic 2D Support

  • Ensure Orthographic Camera's work correctly in all areas
  • Scene view Orthographic view
  • 2D Sprite
    • Single & Multi Sprites
    • Origin/Center Offset
  • Sprite Renderer & Texture Renderer

[Editor] GPU Object Picking

Render Object Instance ID's to a buffer of 1x1 at the mouse click location.
Essentially a Object ray cast done visually on the GPU to select objects

[Rendering] Shader Uniform Buffers?

I've seen uniform buffers before? Can they improve performance and enable less Uniform assignment? Would be good for Built-In common uniforms like Resolution, Time, MVP and so on.

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.