Coder Social home page Coder Social logo

facefx-ue4's Issues

Win32 Development linker error

Hello,
I'm having an issue building our UE4 (4.11.2) in Win32 Development. The linker is complaining with this error:

2>EXEC : fatal error C1905: Front end and back end not compatible (must target same processor).
2>LINK : fatal error LNK1257: code generation failed

I have verified that FaceFX is what is causing the error and I've verified that the issue happens in a stock version of UE4 4.11.2. It appears that Win64 configs are not affected by this error.

Any advice?
Thanks!
Erik

FaceFX fails to compile with Visual Studio 2017

Unreal 4.14 added provisional support for Visual Studio 2017 and 4.15 has full support for it. When generating projects and compiling I encountered issues resolving the path to and linking against the runtime libraries. The root cause for this is in FaceFXLib.Build.cs (ln86):

string CompilerFolder = WindowsPlatform.Compiler == WindowsCompiler.VisualStudio2015 ? "vs14" : "vs12";

I modified our version to be:

string CompilerFolder = (WindowsPlatform.Compiler == WindowsCompiler.VisualStudio2015 || WindowsPlatform.Compiler == WindowsCompiler.VisualStudio2017) ? "vs14" : "vs12";

Apologies for the lack of a pull request.

Copying FaceFX Runtime Libraries correctly

Might be worthwhile updating the instructions to mention that after copying the FaceFX Runtime files, you should have a folder structure like this:

Engine\Plugins\Runtime\FaceFX\Source\FaceFXLib\facefx-1.0.0\bin

Cooking error: "The cooking platform MacNoEditor is not supported by FaceFX"

when cooking, you will see errors in the log like:
LogFaceFX:Error: UFaceFXAsset::ClearPlatformData. The cooking platform MacNoEditor is not supported by FaceFX. Asset: SladeFaceFX

The cooked build plays the animations fine despite the error.

Like Epic's plugins, FaceFX's uplugin file has: “WhitelistPlatforms” : [ “Win64", “Win32”, “Mac” ], but adding MacNoEditor to the whitelist causes unintended behavior in IOS / HTML5 output folders.

Wwise audio does not play from sequencer

This issue is not a problem with the FaceFX plugin itself when Wwise support is compiled in, but with Wwise versions 2017.1.1.6340, 2017.1.3.6377, and potentially others. 2016.2.6.6153 works correctly. UE4.16.3 and 4.18 behave similarly.

Setting up an AkAudioEvent sequencer track, and adding an audio play event will not result in audio being played if you hit play from sequencer. PIE works, but hitting play from sequencer is broken, even when FaceFX is not involved. FaceFX animations that trigger Wwise audio events behave in a similar way....they work from PIE, but do not result in audio being played when you hit play from sequencer.

This issue is just a placeholder and will be closed when a future Wwise integration fixes the issue.

Crash in Sequencer with multiple Actors - 4.15

There is a crash in in Sequencer when dealing with multiple actors. It is very easy to reproduce once you have two actors in Sequencer, each with a FaceFX track, and an animation in it. You can reproduce with two instances of Slade in the scene and set them up to play the same animation from sequencer. I've seen it crash on play from the Sequencer tab, or moving the FaceFX Sequencer tracks around

Happens on Windows and OSX, but on OSX I managed to get a callstack:

FFaceFXAnimationSectionTemplate::Evaluate(FMovieSceneEvaluationOperand const&, FMovieSceneContext const&, FPersistentEvaluationData const&, FMovieSceneExecutionTokens&) const Address = 0x16d90d460 (filename not found) [in UE4Editor-FaceFX.dylib]
FMovieSceneEvaluationTrack::EvaluateStatic(int, FMovieSceneEvaluationOperand const&, FMovieSceneContext, FPersistentEvaluationData const&, FMovieSceneExecutionTokens&) const Address = 0x116f2811c (filename not found) [in UE4Editor-MovieScene.dylib]
FMovieSceneEvaluationTrack::Evaluate(int, FMovieSceneEvaluationOperand const&, FMovieSceneContext const&, FPersistentEvaluationData const&, FMovieSceneExecutionTokens&) const Address = 0x116f2624d (filename not found) [in UE4Editor-MovieScene.dylib]
FMovieSceneRootEvaluationTemplateInstance::EvaluateGroup(FMovieSceneEvaluationGroup const&, FMovieSceneContext const&, IMovieScenePlayer&, FMovieSceneExecutionTokens&, FMovieSceneSequenceID) const Address = 0x116f25c18 (filename not found) [in UE4Editor-MovieScene.dylib]
FMovieSceneRootEvaluationTemplateInstance::Evaluate(FMovieSceneContext, IMovieScenePlayer&, FMovieSceneSequenceID) Address = 0x116f24233 (filename not found) [in UE4Editor-MovieScene.dylib]
FSequencer::EvaluateInternal(FMovieSceneEvaluationRange) Address = 0x11a258776 (filename not found) [in UE4Editor-Sequencer.dylib]
FSequencer::Tick(float) Address = 0x11a257111 (filename not found) [in UE4Editor-Sequencer.dylib]
UEditorEngine::Tick(float, bool) Address = 0x1089e6d56 (filename not found) [in UE4Editor-UnrealEd.dylib]
UUnrealEdEngine::Tick(float, bool) Address = 0x10965153c (filename not found) [in UE4Editor-UnrealEd.dylib]
FEngineLoop::Tick() Address = 0x1011113f9 (filename not found) [in UE4Editor]
GuardedMain(wchar_t const*) Address = 0x101118ba2 (filename not found) [in UE4Editor]
-[UE4AppDelegate runGameThread:] Address = 0x10112653c (filename not found) [in UE4Editor]
-[FCocoaGameThread main] Address = 0x101350366 (filename not found) [in UE4Editor-Core.dylib]
Unknown() Address = 0x7fff836b2c6d (filename not found) [in Foundation]
_pthread_body Address = 0x7fff973fcaab (filename not found) [in libsystem_pthread.dylib]
_pthread_body Address = 0x7fff973fc9f7 (filename not found) [in libsystem_pthread.dylib]
thread_start Address = 0x7fff973fc1fd (filename not found) [in libsystem_pthread.dylib]

Namespaces are stripped from bones in UE4, but not the runtime

UE4 strips Maya namespaces ("ns1:ns2:joint_name") from nodes during FBX import. (In FbxMainImport.cpp according to this thread: https://answers.unrealengine.com/questions/370703/does-unreal-have-to-strip-maya-namespaces.html)

FaceFX leaves them in, resulting in bones that don't move in UE4 with messages in the log about how FaceFX can't find the bones.

I don't think there is anything we can do on the UE4 side to fix this, but it seems that any bone name in the form *:* will not animate in UE4, so we should detect it and output a warning or error (perhaps in the Import Errors dialog?).

Unless I'm mistaken, the only fix would have to happen in the FaceFX Ogre Exporters with an additional option, or in the Runtime compiler as an additional option.

UE 4.11 Support

Hi,

Wanted to find out what the ETA might be for a 4.11 compatible FaceFX plugin. Thanks!

4.14 support

Just wanted to get an eta on a plugin build for 4.14, thx!

Unreal Engine 4.9 build fails

Assuming this is a quick fix. Getting this error when trying to rebuild plugin for 4.9.

Error 1 error : Module rules for 'FaceFXEditor' should not be dependent on modules which are also dynamically loaded: AssetTools D:\UE4 Source\UnrealEngine-release\Engine\Intermediate\ProjectFiles\EXEC UE4

Incompatible animation error dragging Sequencer event over current time

This is a tricky bug to reproduce, but I have reproduced it semi-consistently on PC, OSX, and with several different levels/characters.

The bug occurs when you drag a FaceFX sequencer event over the current time selector (by default this is at time=0). You can drag the whole event, or you can drag only the start time, either will trigger it. If you have the Output log window open when the bug occurs, as you are dragging around the sequencer event in negative time, you will see something like the following getting spammed to the log:

LogFaceFX: Warning: UFaceFXCharacter::Play. Animation is not compatible with FaceFX actor handle. Actor: SladeFaceFX. Animation: SladeFaceFX_Default_welcome
LogFaceFX: Error: UFaceFXCharacter::JumpTo. Current animation is invalid. Asset: SladeFaceFX
LogFaceFX: Warning: UFaceFXCharacter::Play. Animation is not compatible with FaceFX actor handle. Actor: SladeFaceFX. Animation: SladeFaceFX_Default_welcome
LogFaceFX: Warning: UFaceFXCharacter::Play. Animation is not compatible with FaceFX actor handle. Actor: SladeFaceFX. Animation: SladeFaceFX_Default_welcome
LogFaceFX: Warning: UFaceFXCharacter::Play. Animation is not compatible with FaceFX actor handle. Actor: SladeFaceFX. Animation: SladeFaceFX_Default_welcome

When you move the sequencer event back into positive time and away from the current time selector, you can drag it around without getting any warnings or errors.

To reproduce, I load up a level with a level sequence playing a FaceFX animation that starts at time greater than 0, and open sequencer and the Output log. Before I move the sequencer event into negative time however, I have to perform some other steps. At minimum, I've performed a Launch operation and waited for the launch to play before trying to trigger the rest of the bug. I do not know if performing the Launch operation is required to trigger the bug, (perhaps it is a garbage collection issue and Launch is simply triggering some sort of memory cleanup that could happen in other scenarios).

At this point, I'm fairly confident that I will not be able to find a 100% reproducible test case, and I believe some sort of memory issue is to blame for the randomness. I am also confident that if we fix the bug, I will be able to confirm that the bug is fixed because I can reproduce the bug sufficiently frequently that the absence of the bug after a day or two of testing will indicate it is fixed.

TAssetPtr and FStringAssetReference have been renamed

From the 4.18 release notes:

New: Cross-level Actor references are now better supported, using SoftObjectPath and SoftObjectPtr (called Soft Object Reference in Blueprints). As part of this, FStringAssetReference and TAssetPtr were renamed to FSoftObjectPath and TSoftObjectPtr.

Morph targets named "open" do not work in cooked builds

We're not sure if this is an Unreal Engine issue or a FaceFX plugin issue, but initial indications are that it is an engine issue of some sort. The problem is that if you have a morph target named "open" it will be driven except when cooked. Changing the morph target name to "open_mouth" or something other than simply "open" works everywhere, including cooked builds.

Add Linux support

The FaceFX Runtime ships with Linux libraries, so it should be pretty easy to add support for building the UE4 plugin on Linux.

Morph Target animation does not play temporarily after initial setup

After the initial import of a morph-based character into UE4 and setup with the FaceFX plugin, in some cases the morph targets will not activate initially when playing from the Editor. This happens even if "Import Morph Targets" is correctly checked when importing the FBX file. Launching the level works, but PIE does not. The following steps will resolve the issue:

  1. Saving, closing, reopening the project.
  2. Reimporting the skeletal mesh.

Given that the bug does not survive the process of saving/reopening the project, it is difficult to reproduce, and it resolves itself automatically.

Reproduced with "Roger" sample content.

FaceFX animations on new blueprint do not play from Sequencer before PIE

Attempting to play a FaceFX animation via Sequencer on a newly setup blueprint can fail with errors in the console like:

LogFaceFX:Error: UFaceFXComponent::Stop. FaceFX character does not exist for given SkelMeshComp . Caller: None
LogFaceFX:Error: UFaceFXComponent::Pause. FaceFX character does not exist for given SkelMeshComp . Caller: None
LogFaceFX:Error: UFaceFXComponent::JumpTo. FaceFX character does not exist for given SkelMeshComp . Caller: FaceFX

Running PIE or saving and reloading the project will resolve the issue

Error creating cooked build with ContainsNaN function

  1. Launch New Project in UE4.19
  2. Enable FaceFX plugin
  3. Click "Launch" from the Editor

Error message below indicates that the problem relates to this commit that created the ContainsNaN function.

LogPlayLevel: ********** BUILD COMMAND STARTED **********
LogPlayLevel: Completed Launch On Stage: Build Task, Time: 1.263398
LogPlayLevel: Running: C:\Program Files\Epic Games\UE_4.19\Engine\Binaries\DotNET\UnrealBuildTool.exe Slade419 Win64 Development -Project="C:\Users\Doug\Documents\Unreal Projects\Slade419\Slade419.uproject"  "C:\Users\Doug\Documents\Unreal Projects\Slade419\Slade419.uproject" -NoUBTMakefiles  -remoteini="C:\Users\Doug\Documents\Unreal Projects\Slade419" -ski
pdeploy -ini:Game:[/Script/UnrealEd.ProjectPackagingSettings]:BlueprintNativizationMethod=Disabled -noxge -generatemanifest -NoHotReload
LogPlayLevel: Took 1.5426072s to run UnrealBuildTool.exe, ExitCode=0
LogPlayLevel: Running: C:\Program Files\Epic Games\UE_4.19\Engine\Binaries\DotNET\UnrealBuildTool.exe Slade419 Win64 Development -Project="C:\Users\Doug\Documents\Unreal Projects\Slade419\Slade419.uproject"  "C:\Users\Doug\Documents\Unreal Projects\Slade419\Slade419.uproject" -NoUBTMakefiles  -remoteini="C:\Users\Doug\Documents\Unreal Projects\Slade419" -ski
pdeploy -ini:Game:[/Script/UnrealEd.ProjectPackagingSettings]:BlueprintNativizationMethod=Disabled -noxge -NoHotReload -ignorejunk
LogPlayLevel:   Performing 1 actions (4 in parallel)
LogPlayLevel:   [1/1] Link Slade419.exe
**LogPlayLevel:   UE4-FaceFX.lib(Module.FaceFX.cpp.obj) : error LNK2005: "bool __cdecl ContainsNaN(class TArray<struct FBoneTransform,class FDefaultAllocator> const &)" (?ContainsNaN@@YA_NAEBV?$TArray@UFBoneTransform@@VFDefaultAllocator@@@@@Z) already defined in UE4-AnimGraphRuntime.lib(Module.AnimGraphRuntime.cpp.obj)**
LogPlayLevel:      Creating library C:\Users\Doug\Documents\Unreal Projects\Slade419\Binaries\Win64\Slade419.lib and object C:\Users\Doug\Documents\Unreal Projects\Slade419\Binaries\Win64\Slade419.exp
LogPlayLevel:   C:\Users\Doug\Documents\Unreal Projects\Slade419\Binaries\Win64\Slade419.exe : fatal error LNK1169: one or more multiply defined symbols found
LogPlayLevel:   ERROR: UBT ERROR: Failed to produce item: C:\Users\Doug\Documents\Unreal Projects\Slade419\Binaries\Win64\Slade419.exe

Fix "Unlink from FaceFX Actor" option for FaceFX Animation

It is not possible to cleanly delete a FaceFX Animation without also deleting its actor. You need to resort to "Replace References" or "Force Delete". The animation is referenced by the actor, and the "Unlink from FaceFX Actor" does not work.

Packaging Failure

Currently get build failures when trying to package a project with FaceFX enabled:

"MainFrameActions: Packaging (Windows (64-bit)): UnrealBuildTool: ERROR: Couldn't find module rules file for module 'FaceFX'."

Output log:

MainFrameActions: Packaging (Windows (64-bit)): Project.Build: ********** BUILD COMMAND STARTED **********
MainFrameActions: Packaging (Windows (64-bit)): InternalUtils.SafeFileExists: SafeFileExists C:\Program Files (x86)\Xoreax\IncrediBuild\xgConsole.exe=False
MainFrameActions: Packaging (Windows (64-bit)): UE4Build.Build: XGE was requested, but is unavailable, so we won't use it.
MainFrameActions: Packaging (Windows (64-bit)): UE4Build.Build: ************************* UE4Build:
MainFrameActions: Packaging (Windows (64-bit)): UE4Build.Build: ************************* ForceMonolithic: False
MainFrameActions: Packaging (Windows (64-bit)): UE4Build.Build: ************************* ForceNonUnity:False
MainFrameActions: Packaging (Windows (64-bit)): UE4Build.Build: ************************* ForceDebugInfo: False
MainFrameActions: Packaging (Windows (64-bit)): UE4Build.Build: ************************* UseXGE: False
MainFrameActions: Packaging (Windows (64-bit)): InternalUtils.SafeFileExists: SafeFileExists D:\Program Files\Epic Games\4.8\Engine\Binaries\DotNET\UnrealBuildTool.exe=True
MainFrameActions: Packaging (Windows (64-bit)): InternalUtils.SafeFileExists: SafeFileExists D:\Program Files\Epic Games\4.8\Engine\Binaries\DotNET\UnrealBuildTool.exe=True
MainFrameActions: Packaging (Windows (64-bit)): InternalUtils.SafeFileExists: SafeFileExists D:\Program Files\Epic Games\4.8\Engine\Binaries\DotNET\UnrealBuildTool.exe=True
MainFrameActions: Packaging (Windows (64-bit)): CommandUtils.Run: Run: D:\Program Files\Epic Games\4.8\Engine\Binaries\DotNET\UnrealBuildTool.exe Klepto Win64 Development -clean "D:\Unreal Projects\Klepto\Klepto.uproject" -nobuilduht -rocket -NoHotReloadFromIDE
MainFrameActions: Packaging (Windows (64-bit)): UnrealBuildTool: ERROR: Couldn't find module rules file for module 'FaceFX'.
MainFrameActions: Packaging (Windows (64-bit)): CommandUtils.Run: Run: Took 3.2881881s to run UnrealBuildTool.exe, ExitCode=5
MainFrameActions: Packaging (Windows (64-bit)): ErrorReporter.Error: ERROR: AutomationTool error: Command failed (Result:5): D:\Program Files\Epic Games\4.8\Engine\Binaries\DotNET\UnrealBuildTool.exe Klepto Win64 Development -clean "D:\Unreal Projects\Klepto\Klepto.uproject" -nobuilduht -rocket -NoHotReloadFromIDE. See logfile for details: 'UnrealBuildTool.txt'
MainFrameActions: Packaging (Windows (64-bit)): BuildCommand.Execute: ERROR: BUILD FAILED
MainFrameActions: Packaging (Windows (64-bit)): Program.Main: ERROR: AutomationTool terminated with exception:
MainFrameActions: Packaging (Windows (64-bit)): Program.Main: ERROR: Exception in AutomationTool: Command failed (Result:5): D:\Program Files\Epic Games\4.8\Engine\Binaries\DotNET\UnrealBuildTool.exe Klepto Win64 Development -clean "D:\Unreal Projects\Klepto\Klepto.uproject" -nobuilduht -rocket -NoHotR
MainFrameActions: Packaging (Windows (64-bit)): eloadFromIDE. See logfile for details: 'UnrealBuildTool.txt'
MainFrameActions: Packaging (Windows (64-bit)): Stacktrace: at AutomationTool.CommandUtils.RunAndLog(String App, String CommandLine, String Logfile, Int32 MaxSuccessCode, String Input, ERunOptions Options, Dictionary2 EnvVars) MainFrameActions: Packaging (Windows (64-bit)): at AutomationTool.CommandUtils.RunUBT(CommandEnvironment Env, String UBTExecutable, String CommandLine, String LogName, Dictionary2 EnvVars)
MainFrameActions: Packaging (Windows (64-bit)): at AutomationTool.UE4Build.CleanWithUBT(String ProjectName, String TargetName, UnrealTargetPlatform Platform, String Config, String UprojectPath, Boolean ForceMonolithic, Boolean ForceNonUnity, Boolean ForceDebugInfo, String InAddArgs, Boolean ForceUnity, Dictionary2 EnvVars) MainFrameActions: Packaging (Windows (64-bit)): at AutomationTool.UE4Build.Build(BuildAgenda Agenda, Nullable1 InDeleteBuildProducts, Boolean InUpdateVersionFiles, Boolean InForceNoXGE, Boolean InForceNonUnity, Boolean InForceUnity, Dictionary2 PlatformEnvVars) MainFrameActions: Packaging (Windows (64-bit)): at Project.Build(BuildCommand Command, ProjectParams Params, Int32 WorkingCL) MainFrameActions: Packaging (Windows (64-bit)): at BuildCookRun.DoBuildCookRun(ProjectParams Params) MainFrameActions: Packaging (Windows (64-bit)): at BuildCommand.Execute() MainFrameActions: Packaging (Windows (64-bit)): at AutomationTool.Automation.Execute(List1 CommandsToExecute, CaselessDictionary`1 Commands)
MainFrameActions: Packaging (Windows (64-bit)): at AutomationTool.Automation.Process(String[] CommandLine)
MainFrameActions: Packaging (Windows (64-bit)): at AutomationTool.Program.MainProc(Object Param)
MainFrameActions: Packaging (Windows (64-bit)): at AutomationTool.InternalUtils.RunSingleInstance(MainProc Main, Object Param)
MainFrameActions: Packaging (Windows (64-bit)): at AutomationTool.Program.Main()
MainFrameActions: Packaging (Windows (64-bit)): Program.Main: ERROR: Command failed (Result:5): D:\Program Files\Epic Games\4.8\Engine\Binaries\DotNET\UnrealBuildTool.exe Klepto Win64 Development -clean "D:\Unreal Projects\Klepto\Klepto.uproject" -nobuilduht -rocket -NoHotReloadFromIDE. See logfile for details: 'UnrealBuildTool.txt'
MainFrameActions: Packaging (Windows (64-bit)): ProcessManager.KillAll: Trying to kill 0 spawned processes.
MainFrameActions: Packaging (Windows (64-bit)): Program.Main: AutomationTool exiting with ExitCode=5
MainFrameActions: Packaging (Windows (64-bit)): Domain_ProcessExit
MainFrameActions: Packaging (Windows (64-bit)): ProcessManager.KillAll: Trying to kill 0 spawned processes.
MainFrameActions: Packaging (Windows (64-bit)): copying UAT log files...
MainFrameActions: Packaging (Windows (64-bit)): RunUAT.bat ERROR: AutomationTool was unable to run successfully.
MainFrameActions: Packaging (Windows (64-bit)): BUILD FAILED

Use relative path to avoid "FaceFX Compilation Folder does not exist"

If User A creates a FaceFX asset in UE4, and User B attempts to update it by right-clicking on the asset (or right-clicking on the animation) and selecting "Reimport FaceFX Studio Assets", User B can get a message "FaceFX Compilation Folder does not exist" if User B is using a different drive than User A.

The workaround is for User B to right-click on the FaceFX asset (or animation) and select "Set new FaceFX Studio Assets", then browse to the asset on their computer and (if an animation was selected) select the appropriate animation from a dropdown.

Is it possible to store a relative path to the FaceFX compilation folder? User B could then update an animation that User A created, even if User B had his game installed to D:\ and User A had all files on E:.

UE4 works like this: When the UE4 project is on the same drive as an asset being imported, a relative path is stored to the source file for that asset. The relative path is relative to the .uasset file, and it always backs up to the root of the drive before navigating to the file.

MAX_PATH issue on windows

I'm hitting the 260 character path length maximum due to some of the files in the faceFX runtime folder. While I don't think its the only offender, the files in this path are nested particularly deep:

\facefx-runtime-1.2.0\facefx\tools\compiler\src\extern\yaml-cpp\build\osx\CMakeFiles\3.7.1\CompilerIdC\CompilerIdC.build\Debug\CompilerIdC.build

once the facefx-runtime-1.2.0 is copied into my UE4 workspace (the plugin folder is already nested fairly deeply) I'm violating the limit by ~20 characters. For reference my workspace root for the UE4 engine is ~30 characters.

I don't think any of the missing offending files are causing issues for us at the moment, but it would be nice if this folder would copy cleanly. Is there any way you guys could reorganize the folder structure a bit to alleviate this issue?

Thanks!
Erik

Support absolute audio paths in .ffxamap files

Currently the plugin only supports relative paths in the audio map file. The FaceFX Runtime v1.4 will add support for gracefully falling back to absolute paths in the audio map file, so the UE4 plugin needs to be updated to accept them.

Add sequencer documentation

Sequencer support should be documented in its own markdown file just like Matinee, and linked to from the main documentation.

wWise integration requires and imports audio files

wWise users do not want sound wav objects created, so import should not fail when audio files aren’t found, and no audio should be imported when wWise is support is compiled in.

Animations will not play with sound initially, but will after the AK event is hooked up to the animation.

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.