Giter Site home page Giter Site logo

vrc-gesture-manager's People

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

vrc-gesture-manager's Issues

missing script

Not sure what im missing Packages\dev.vrlabs.av3manager\Editor\Elements\ClipsSwapAreaElement.cs(15,22): error CS0246: The type or namespace name 'ClipSwapItem' could not be found (are you missing a using directive or an assembly reference?)

Compression format suggestions for Quest avatars

I have run my Quest avatar through VRAM Calculator and noticed that compression format change from ASTC_4x4 to DXT1 is suggested.

I think we should stick to ASTC when we target Android devices.

image

Errors on play

here are the errors I receive maybe its something I'm doing wrong.
#1
Packages\vrchat.blackstartx.gesture-manager\Scripts\Editor\Modules\Vrc3\DummyModes\Vrc3DummyMode.cs(28,24): error CS0234: The type or namespace name 'ExtensionMethods' does not exist in the namespace 'VRC.Core'
#2
Packages\vrchat.blackstartx.gesture-manager\Scripts\Editor\Modules\Vrc3\ModuleVrc3.cs(993,29): error CS1061: 'VRCPhysBoneBase' does not contain a definition for 'param_IsPosed' and no accessible extension method 'param_IsPosed' accepting a first argument of type 'VRCPhysBoneBase' could be found
#3
Packages\vrchat.blackstartx.gesture-manager\Scripts\Editor\Modules\Vrc3\ModuleVrc3.cs(993,128): error CS0117: 'VRCPhysBoneBase' does not contain a definition for 'PARAM_ISPOSED'
#4
Packages\vrchat.blackstartx.gesture-manager\Scripts\Editor\Modules\Vrc3\ModuleVrc3.cs(995,29): error CS1061: 'VRCPhysBoneBase' does not contain a definition for 'param_Squish' and no accessible extension method 'param_Squish' accepting a first argument of type 'VRCPhysBoneBase' could be found
#5
Packages\vrchat.blackstartx.gesture-manager\Scripts\Editor\Modules\Vrc3\ModuleVrc3.cs(995,127): error CS0117: 'VRCPhysBoneBase' does not contain a definition for 'PARAM_SQUISH'
Thank you for your time

CS1061 and CS0117 in ModuleVrc3

Using:

Gesture manager V: 3.6
Unity Version: 2019.4.31f1
VRCSDK: VRCSDK3-AVATAR-2022.05.31.23.28_Public (the 2022.06.03.00.04 produces the same results)

Description:

Whenever Gesture 3.6 is imported on any existing project, the script produces lingering issues in the unity console (see screenshots)

How to replicate:

in my case i was able to generate this issue by importing gesture manager 3.6 on any of my existing avatar projects

possible conflicts & packages that are being used together gesture manager:

Laydown.Animation-Action-v10.-.Multi.-.Nirvash
PoiyomiPro8.0.022
PoiyomiToon7.3.46 //unused, comes bundled together with pro
PumkinsAvatarTools_v1.0
VRCQuestTools-v1.6.2
QHierarchy 4.4

Errors:

CS0117
immagine
CS1061
error too long, doesn't fit whole in the console
immagine
in-dept of one of the CS1061
immagine

Other details:

all my avatar have a: gesture layer, action layer and a fx layer
all of them have the animator -> controller property assigned as at the fx layer (in ored to be able to edit animations)
nothing more that all my avatar have in common that could be relevant to this issue

EDITS:

Edit: 06/07/2022 at 1654621146 unix millis

it seems like i have miss-imported the SDK 2022.06.03.00.04 on testing before making this issue, using the new sdk solves this issue, however this means that Gesture Manager V 3.6 is not backwards compatible, to solve further confusion suggestion is to have a check for the this specific SDK 2022.06.03.00.04 or further and notify the user trough console or popup before initializing the main script

Parameter drivers for triggers are not simulated.

While working on an asset, I noticed that GM doesn't respond to parameter drivers driving parameters of the type trigger.
Those drivers are seemingly skipped. This works fine ingame, is just not emulated correctly.

image

The parameter driver drives a trigger that does its thing on a different Layer, both are on the "Action" playable layer, if that matters.

Repro:

  1. Create a trigger parameter
  2. Create logic with a parameter driver that drives that trigger.
  3. Trigger won't change in play-mode.

3.8.8 not working in unity 2022

hello, i tested gesture manager in unity 2022 and 2019
avatar is booth 3817645 as it is small size and easy

for unity 2022, i only imported
resolver tool 0.1.27
base 3.5.0
avatar 3.5.0
liltoon1.6.0
error
errors are all about unity
gesture emotions and expressions do not work

but in unity 2019, 3.8.8 works fine

please help fix it

T-pose ?

This tool is good, thank you.

well, can I use this tool in T-pose (or standing-pose)?

Blend Shapes Overshooting

image
In this photo, you can see when avatar testing, blend shapes REALLY overshot when they should only be maxing out at 100, this is the behavior in-game.

This broken look was achieved by already having the blend shapes set to 100 by default, and rather than the emulator considering that, it will basically add to the fire when it doesn't need to.

Compiling error

Trying to compile a Unity 2022 Avatar Project with the gesture manager package active leads to multiple compiling errors.

Creator Companion: 2.3.1
Unity: 2022.3.22f1
Project: 2022 Avatar
VRChat Package Resolver Tool: 0.1.29
VRChat SDK - Base: 3.6.1
VRChat SDK - Avatars: 3.6.1
Gesture Manager: 3.9.1

Errors:
Packages\lyuma.av3emulator\Editor\GestureManagerBridge\GestureManagerAv3MenuEditor.cs(25,49): error CS0234: The type or namespace name 'Vrc3' does not exist in the namespace 'BlackStartX.GestureManager.Editor.Modules' (are you missing an assembly reference?) Packages\lyuma.av3emulator\Editor\GestureManagerBridge\GestureManagerAv3MenuEditor.cs(263,10): error CS0246: The type or namespace name 'RadialMenu' could not be found (are you missing a using directive or an assembly reference?) Packages\lyuma.av3emulator\Editor\GestureManagerBridge\GestureManagerAv3MenuEditor.cs(262,3): error CS0246: The type or namespace name 'RadialMenu' could not be found (are you missing a using directive or an assembly reference?) Packages\lyuma.av3emulator\Editor\GestureManagerBridge\GestureManagerAv3MenuEditor.cs(40,67): error CS0234: The type or namespace name 'Vrc3' does not exist in the namespace 'BlackStartX.GestureManager.Editor.Modules' (are you missing an assembly reference?) Packages\lyuma.av3emulator\Editor\GestureManagerBridge\GestureManagerAv3MenuEditor.cs(41,68): error CS0234: The type or namespace name 'Vrc3' does not exist in the namespace 'BlackStartX.GestureManager.Editor.Modules' (are you missing an assembly reference?) Packages\lyuma.av3emulator\Editor\GestureManagerBridge\GestureManagerAv3MenuEditor.cs(66,72): error CS0234: The type or namespace name 'Vrc3' does not exist in the namespace 'BlackStartX.GestureManager.Editor.Modules' (are you missing an assembly reference?) Packages\lyuma.av3emulator\Editor\GestureManagerBridge\GestureManagerAv3MenuEditor.cs(102,71): error CS0234: The type or namespace name 'Vrc3' does not exist in the namespace 'BlackStartX.GestureManager.Editor.Modules' (are you missing an assembly reference?) Packages\lyuma.av3emulator\Editor\GestureManagerBridge\GestureManagerAv3MenuEditor.cs(117,70): error CS0234: The type or namespace name 'Vrc3' does not exist in the namespace 'BlackStartX.GestureManager.Editor.Modules' (are you missing an assembly reference?) Packages\lyuma.av3emulator\Editor\GestureManagerBridge\GestureManagerAv3MenuEditor.cs(132,72): error CS0234: The type or namespace name 'Vrc3' does not exist in the namespace 'BlackStartX.GestureManager.Editor.Modules' (are you missing an assembly reference?)

Incompatible with tools applied on play

There are many tools to modify avatar non-destructively on build time and many tools applies those tool on entering Play mode.
Those tools are applied during scene load (on Awake).
However, Gesture Manager initializes on OnEnable of Editor, which can be before Awake.
So, I want GestureManager to delay initialization of GM after Scene load.
For example, first OnInspectorGUI (or other IMGUI Callbacks) can be a place because it will be called after Scene load.

Change classes to work outside of Editor

Issue

I want to use your awesome tool in a personal Unity app I am building for testing VRChat avatars. But I can't because almost all of the classes you wrote are in the Editor folder so aren't available in the built app.

Solution

Change classes that don't use the UnityEditor classes outside of the Editor folder so they can be used anywhere.

Testing

In my project I've already tried it for a bunch of classes and they all work as expected.

VRCPlayAudio wrong setting behaviour

I haven't tested this in all honesty, but the VRChat docs seem to imply the settings on the vrc animator play audio are set upon component entry. You seem to set them only if new audio is being played, and also possibly on exit. I think you should move the audio settings code to the onenter block and not the playaudio block.

Though that's going off of the documentation, if you wanna be sure you should do some testing.

Profiling Animators.Update doesn't tell the full story

Hi BlackStartX,

I commented this on #17 , but I thought i'd move it to its own issue for easier tracking.

It's really nice to see animator performance gaining more attention, and your tool will certainly aid with that, so I'm really happy to see this implemented, however, please note that Animator.Update isn't the only place where animator performance increases.

In my testing I noticed that adding AnimatorControllerPlayable.PrepareFrame and Animators.Update give you quite accurate representations.

image

Above you can see the performance of a scene with 920 layers with 2 state toggles and nothing else, and you can see that AnimatorControllerPlayable.PrepareFrame also takes up quite some time, as an example. This would be missed by using just Animator.Update

Null reference exceptions in play mode when Experimental Play Mode options are enabled.

Seems like the gesture manager only works once successfully.
After leaving playmode once and going back in I'm spammed with null reference exceptions.

MissingReferenceException: The object of type 'AnimationClip' has been destroyed but you are still trying to access it.
Your script should either check if it is null or you should not destroy the object.
UnityEngine.Object.get_name () (at <7d87237cea3743d093e22c5b98f74fba>:0)
GestureManager.Scripts.Editor.GestureManagerEditor.OnCheckBoxGuiHandAnimation (GestureManager.Scripts.Extra.ModuleBase module, System.Int32 i, System.Int32 position, System.Boolean overrider, System.Boolean& isOn) (at Assets/GestureManager/Scripts/Editor/GestureManagerEditor.cs:213)
GestureManager.Scripts.Editor.GestureManagerEditor.OnCheckBoxGuiHand (GestureManager.Scripts.Extra.ModuleBase module, GestureManager.Scripts.Extra.GestureHand hand, System.Int32 position, System.Boolean overrider) (at Assets/GestureManager/Scripts/Editor/GestureManagerEditor.cs:207)
GestureManager.Scripts.Editor.Modules.Vrc3.ModuleVrc3.EditorContentGesture (UnityEngine.UIElements.VisualElement element, GestureManager.Scripts.Editor.Modules.Vrc3.Vrc3WeightController weightController) (at Assets/GestureManager/Scripts/Editor/Modules/Vrc3/ModuleVrc3.cs:276)
GestureManager.Scripts.Editor.Modules.Vrc3.ModuleVrc3+<>c__DisplayClass44_0.<EditorContent>b__0 () (at Assets/GestureManager/Scripts/Editor/Modules/Vrc3/ModuleVrc3.cs:210)
GestureManager.Scripts.Core.Editor.GmgLayoutHelper.MyToolbar (System.Int32& toolbar, UnityEngine.GUIContent[] contents, System.ValueTuple`2[System.String,System.Action][] actions) (at Assets/GestureManager/Scripts/Core/Editor/GmgLayoutHelper.cs:40)
GestureManager.Scripts.Core.Editor.GmgLayoutHelper.MyToolbar (GestureManager.Scripts.Core.Editor.GmgLayoutHelper+Toolbar& toolbar, System.ValueTuple`2[System.String,System.Action][] field) (at Assets/GestureManager/Scripts/Core/Editor/GmgLayoutHelper.cs:35)
GestureManager.Scripts.Editor.Modules.Vrc3.ModuleVrc3.EditorContent (System.Object editor, UnityEngine.UIElements.VisualElement element) (at Assets/GestureManager/Scripts/Editor/Modules/Vrc3/ModuleVrc3.cs:208)
GestureManager.Scripts.Editor.GestureManagerEditor.ManagerGui () (at Assets/GestureManager/Scripts/Editor/GestureManagerEditor.cs:95)
UnityEngine.UIElements.IMGUIContainer.DoOnGUI (UnityEngine.Event evt, UnityEngine.Matrix4x4 parentTransform, UnityEngine.Rect clippingRect, System.Boolean isComputingLayout, UnityEngine.Rect layoutSize, System.Action onGUIHandler, System.Boolean canAffectFocus) (at <b6a7e1825c0b45d3b0729282e86cc687>:0)
UnityEngine.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e, UnityEngine.Matrix4x4 worldTransform, UnityEngine.Rect clippingRect, System.Action onGUIHandler, System.Boolean canAffectFocus) (at <b6a7e1825c0b45d3b0729282e86cc687>:0)
UnityEngine.UIElements.IMGUIContainer.DoIMGUIRepaint () (at <b6a7e1825c0b45d3b0729282e86cc687>:0)
UnityEngine.UIElements.UIR.RenderChainCommand.ExecuteNonDrawMesh (UnityEngine.UIElements.UIR.DrawParams drawParams, System.Boolean straightY, System.Single pixelsPerPoint, System.Exception& immediateException) (at <b6a7e1825c0b45d3b0729282e86cc687>:0)
Rethrow as ImmediateModeException
UnityEngine.UIElements.UIR.RenderChain.Render (UnityEngine.Rect viewport, UnityEngine.Matrix4x4 projection, UnityEngine.UIElements.PanelClearFlags clearFlags) (at <b6a7e1825c0b45d3b0729282e86cc687>:0)

Looking into it, it seems that the ModuleVrc3Styles.Data.GestureClips array is full of null AnimationClips and the code is trying to grab the name of them.

Nothing unusual about my setup, I'd think. I only have 1 scene loaded with one avatar. Just looks like unity is destroying the animation clips.

Using VRCSDK3-AVATAR-2022.06.03.00.04 and Unity 2019.4.31f.

isLocal parameter support?

When using the isLocal parameter like VRCLens, i need a feature that can test the feature that is visible only to myself.

Gesture Manager toggles are not working

I recently transferred my Unity file from version 2019 to version 2022, but now none of the toggles or expressions seem to work. I've updated the script and even reinstalled it, but still, nothing is working.

Add support for saving parameters between sessions

Remembering all "saved" parameters would really help speed up my avatar testing, so I wouldn't have to re-set all the options in the radial menu every time. This one might need to be an option you can enable/disable, for people who prefer the current behaviour of automatically resetting everything.

[Request] "Performance Test" Tool

Tupper recommended using Gesture Manager as a tool to gauge how performant our avatar animators are. link

By referencing the Animator.Update time in the unity profiler we can get a performance stat for our animators. Even if it's not a perfect emulation of how the animator is at runtime in VRC, it's an alright ballpark number.

It'd be nice if there was a button within the tools section that initiates an animator test/benchmark. It could start the unity profiler, collect Animator.Update times, and display the current & average as it continues. A non-technical user would never open the profiler and examine their animator so if this was built right into the tool section of Gesture manager, it could open eyes for many as to why animator optimization is important.

Edit: Clarity

User-friendly way of quickly testing face/eye tracking shapes

Hello!

It would be useful to have a menu for simulating face/eye tracking input from OSC, to test and see what about an avatar is working and not working. ATM, AV3emu has OSC implementation, which is great- but still kind of wonky to set up with real hardware.

AllowSelf and AllowOthers contacts parameters ignored in the simulation.

This issue has been reported by MrDj200 in another thread and I moved it here for an official and dedicated one.

I need a receiver and sender at the same place to check if people are touching noses for example. I'm using a custom collision tag with Allow Self disabled, and it works in vrc, but in gesture manager, the receiver is being triggered by the sender on myself, which is not intended behavior.

Originally posted by @MrDj200 in #3 (comment) (Thanks again for sharing that out~)

I'll work on a fix for this problem and post an updated preview package here as soon as it's ready~ ^-^

GestureManager not working in SDK 3.2.0(-beta.2)

Packages\vrchat.blackstartx.gesture-manager\Scripts\Editor\Modules\Vrc3\AvatarDynamics\AvatarDynamicReset.cs(44,30): error CS0246: The type or namespace name 'PhysBoneGrabHelper' could not be found (are you missing a using directive or an assembly reference?)

Parameter coercion should work for built-ins

Built-in params, such as GestureLeft and GestureRight, should also work with parameter coercion. While it is unusual to do so, sometimes built-ins are used with the wrong type (int instead of bool, float instead of int, etc). In game and Av3emu handle this properly, but it seems the Gesture Manager does not. It at least does not coerce GestureLeft and GestureRight properly.

Certain HTML Tags not supported.

(Version 3.7 and earlier)
The Emulator isn't simulating some menu formattings correctly.

Expected look:
image

How the emulator renders it:
image

The string itself:
<b><size=23><line-height=100%><voffset=24.5em>Buddy Menu v2</b>

Debug Window Exceeds Width Of Inspector, Popout

Issue

  • On High DPI & Retina displays, the Debug window is improperly sized, exceeding the width of the inspector by more than double.
  • Width is also double when popped out into a standalone window.

Cause

  • Screen.width is being used instead of EditorGUIUtility.currentViewWidth in ModuleVrc3 & Vrc3AvatarDebugWindow.cs.
  • On some systems, the number returned by Screen.width is a value much higher than the actual size on screen, due to the scale factor being higher than a factor of 1.0.
  • EditorGUIUtility.currentViewWidth returns the current editor GUI width as rendered, rather than the raw, unscaled width.

Environment

  • MacBook Air M2
  • 24GB RAM
  • Unity 2019.4.31f
  • Gesture Manager 3.8

GestureWeight should default to 0

Every time I test my avatars I have to drag the weight sliders to 0 to get them to a "neutral" state. I think it would make more sense for 0 to be the default, just like all of the gestures are unchecked by default.

Screenshot.1444.mp4

Edit: Alternatively, if you don't want to change the default, just having the selected weight save between tests would also solve my issue.

VRCAnimatorPlayAudio not working

Recently the new VRCSDK update added the new state behavior VRCAnimatorPlayAudio,
gesture manager doesn't do anything with this I'm pretty sure. Would be epic tho ๐Ÿ‘

A few of the issues I have noticed.

  1. Lack of a option to apply saved params config from VRC to avatar.
  2. OSC system does not apply all parameters correctly. Only built in ones it seems. All of my long param named params fail to apply, but show in the Receive region. Unsure if it is related to my param names being long, or a actual bug.

Gesture manager does not work normally.

Dear BlackStartx,
Hello. While testing the animation using Gesture Manager, I found something strange.
After creating a new animation, setting the menu and FX, etc., I ran Toogle as a gesture manager, but the animations that worked normally before did not work.
In the debug window, it can be confirmed that the value is changed normally.
However, in VRChat in-game, all animations work normally.

Do you know anything about this phenomenon?

Best Regards,
Ryeoha Yoon.

[Request] VPM support

Hey there!

As you have probably heard, VRC will enforce use of the Creator Companion starting next year.

It comes with the ability to create project templates that can automatically pull packages and insert them into new projects as well as automatically update packages.

Custom repositories and packages are supported as well, but in order to take advantage of most of the advanced automation features, packages need to be provided in the VPM format. Tooling and documentation on creating a VPM package is provided here:
https://github.com/vrchat-community/template-package

Since I consider Gesture Manager to be an essential tools for avatar creation and debugging, I would love for it to be available as a custom VPM repo to be able to keep it included in my projects and updated automatically.

Are there any plans on looking into that functionality?

Small Issue with Avatar Dynamics

Hi,

Using the new AvatarDynamics, you're able to grab PhysBones in the Game window in Play mode. You're also able to get Paramters depicting whether or not a physbone is being grabbed etc.
The parameter shows up in GestureManagers Debug menu, however sometimes when grabbing a PhysBone, it doesn't update the parameter. The same issue occurs with contacts.
Most of the time, the only way to get GestureManager to recognize them again, is to restart Unity.

I'm using the newest (at the point of writing this) VRCSDK
Unity 2019.4.31f1
and GestureManager 3.4

Edit:

When leaving PlayMode, there is the following Warning in the Console:
Assets/GestureManager/Scripts/Editor/Modules/Vrc3/ModuleVrc3.cs(109): PlayableGraph was not destroyed
image

Set default avatar

In my scene I have four avatars (PC, PC fallback, Quest, Quest fallback), and I can't figure out the rhyme or reason to which one Gesture Manager decides to start up with when I activate it in play mode. I'd like to be able to select the one I'm actively working on from edit mode and have it stick. Is there any way to do this, or could that be added?

Assembly has duplicate references due to Unity 2019 bug

Assembly has duplicate references: vrchat.blackstartx.gesture-manager,VRC.SDK3A (Packages/vrchat.blackstartx.gesture-manager/Scripts/Editor/vrchat.blackstartx.gesture-manager.editor.asmdef)

can be happened when we installed Gesture Manager due to Unity 2019 bug.

We can workaround this issue by using name instead of GUID in asmdef.

Rich Text Support

https://docs.unity3d.com/Packages/[email protected]/manual/StyledText.html

VRChats action menu fully supports rich text in an undocumented state if you use color codes such as below, you will beable to recolor the text without requiring the use of game modifications could you enable rich text for the menus because without it the names are excessively long, as compared to ingame when its properly applied as color
image

<color=green>

Or

<color=blue>

image

image

Contact Receivers set to "Allow Others" still get triggered in the Emulator

There is one Avatar that I am using that has a Contact Sender and Contact Receiver targeting the same Bone (particularly the Head). They use a custom Tag and they are both sized the exact same, basically touching each other.

If they are both touching each other at the same time, the Contact will continuously trigger endlessly despite it being set to "Allow Others" only. Keep in mind that "Allow Self" is completely disabled on the Receiver.

Of course, this behavior is not possible in VRChat. However, it seems to happen in the Emulator only. Is this a bug or an intentional function of Gesture Manager?

Suggestion! Remote clone

The idea behind this would be similar to how AV3 Emulators "remote clone" works, where you still have a local version and a remote sided clone to test FX's on both the client and remote. I understand that there is a "IsLocal" toggle but that does not do what I'd like it todo. And I understand "just use av3 emu" issue with that is the handful of issues that GM just doesn't have. Plus GM is just overall nicer and easier to use for debugging/testing

[Feature Request] Grabbing Physbones

Just like clickable contacts, it would be great for a grabbable physbones system. It would be great for troubleshooting them being ungrabbable in game, and troubleshooting complex toggle systems making use of them.

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.