nbusseneau / hephaistos Goto Github PK
View Code? Open in Web Editor NEWSupergiant Games' Hades mod adding support for ultrawide monitors (21:9, 32:9), multi-monitor (48:9), Steam Deck (16:10), and custom resolutions.
License: MIT License
Supergiant Games' Hades mod adding support for ultrawide monitors (21:9, 32:9), multi-monitor (48:9), Steam Deck (16:10), and custom resolutions.
License: MIT License
Would there be any interest in integrating a simple GUI I wrote for your awesome mod? Or maybe just linking to it in the README.md for users who want an easy way to swap screen resolutions while in Steam's Game Mode?
https://github.com/apolopena/hephaistos-gui
Integration of the GUI in it's current implementation could be in the form of a sub command such as: ./hephaistos gui screenres
@nbusseneau I could open a PR if you are interested integrating it or just linking to it
Thanks again for your awesome mod!
For some reason is not patching the game:
Command: hephaistos patch 5120 1440 --force
Output:
ERROR:hephaistos.patchers:Expected 2 matches, found 0 for width and 2 for height
Traceback (most recent call last):
File "hephaistos\__main__.py", line 17, in <module>
File "hephaistos\cli.py", line 88, in __init__
File "hephaistos\cli.py", line 123, in handler
File "hephaistos\patchers.py", line 60, in patch_engines
File "hephaistos\patchers.py", line 37, in __safe_patch_file
File "hephaistos\patchers.py", line 77, in __patch_engine
LookupError: Expected 2 matches, found 0 for width and 2 for height
[12980] Failed to execute script __main__
Same after restoration, with no "--force" etc. Can't patch the game.
Hi! Thank you for this really cool and well documented mod :)
I'm trying to run Hades on my 14' MacBook Pro, it has a bit of a weird resolution (3024x1964px) with the whole notch situation. I tried to set it up with Hephaistos but it gives me this error after the HUD step:
error: argument --scaling: invalid choice: <Scaling.AUTODETECT: 'autodetect'> (choose from 'hor+', 'vert+', 'pixel')
I tried to set up the more traditional 16/10 aspect ratio and it worked as intended. Any idea what's going on? Thank you for your help!
Here's the full log:
Pick an option:
1. Patch Hades using Hephaistos
2. Restore Hades to its pre-Hephaistos state
3. Check current Hades / Hephaistos status
4. Exit
Choice: 1
Pick an option:
1. Select from common 16:10 resolutions
2. Select from common 21:9 resolutions
3. Select from common 32:9 resolutions
4. Select from common 48:9 resolutions
5. Input resolution manually
6. Cancel
Choice: 5
Width: 3024
Height: 1964
Select scaling algorithm (see README for more details):
1. [RECOMMENDED] Hor+ / Vert+ (based on input resolution): keeps experience close to vanilla game.
2. Pixel-based: effectively "zooms out" the camera.
3. Cancel
Choice (press ENTER to use [RECOMMENDED]): 1
Select HUD resizing mode (see README for more details):
1. Expand the HUD horizontally and vertically.
2. Keep HUD in the center of the screen with the same size as the original 16:9 HUD.
3. Cancel
Choice: 1
error: argument --scaling: invalid choice: <Scaling.AUTODETECT: 'autodetect'> (choose from 'hor+', 'vert+', 'pixel')
usage: hephaistos patch [-h] [--scaling {hor+,vert+,pixel}] [--hud {expand,center}] [--no-custom-resolution] [-f] [-v]
[--hades-dir HADES_DIR] [--no-modimporter]
width height
patch Hades using Hephaistos
positional arguments:
width display resolution width
height display resolution height
options:
-h, --help show this help message and exit
--scaling {hor+,vert+,pixel}
scaling algorithm (default: 'hor+' for wider aspect ratios / 'vert+' for taller aspect ratios)
--hud {expand,center}
HUD mode (default: 'expand' for most aspect ratios / 'center' for 48:9 and wider)
--no-custom-resolution
do not patch custom resolution in 'ProfileX.sjson' configuration file (default: patch custom resolution)
-f, --force force patching, bypassing hash check and removing previous backups (to be used after a game update)
-v, --verbose verbosity level (none: errors only, '-v': info, '-vv': debug)
--hades-dir HADES_DIR
path to Hades directory (default: '.', i.e. current directory)
--no-modimporter do not use modimporter for registering / unregistering Hephaistos (default: use modimporter if available)
Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.
[Process completed]
Hello,
I installed Hades on my steam deck via the Heroic store, a 3rd party epic games launcher, since that is where I own the game.
Unfortunately, this causes an issue with patching, as hephaistos does not know where my save folder is. (Mine is /home/deck/Games/Heroic/Prefixes/Hades/pfx/drive_c/users/steamuser/Documents/Saved Games/Hades/)
I read #13 where it was suggested being able to define your own save file path in the CLI tool.
Do you think this would be possible to implement?
Recently started playing Starfinder. My group is using Hephaistos to create our characters and do level-ups.
When I log in and access my account via the Creation Manager... logging in and accessing the editable portion of my character sheet, everything is working. In the upper right-hand corner, it shows me logged in.
If I click on view my (character) sheet, it starts processing the click... I lose my logged-in status and I get the loading page stripe across the screen and it never loads. I have got up and walked away.. it never loads.
Repeated tries garner nothing different.
I eventually will clear the cache, restart the computer and I finally can get the information up. IF I am not playing this is doable (just irritating), but in the middle of a game, I don't want to have to be restarting my computer to view my character's sheet.
Any thoughts?
The initial load screen (white) scales correctly but is then clipped for a second (I've switched it from white to red for the video, so that we can see it easily) before returning to a proper state (white again).
ExitToHadesPresentation
runs FadeOut({ Color = Color.White, Duration = 2 })
ObstacleData.TravelDoor01.ExitFunctionName = "ExitToHadesPresentation"
mLoadBackgroundColor
displayed
RoomSetData.Styx.D_Boss01.LoadBackgroundColor = Color.White
is loaded to world->mLoadBackgroundColor
via LoadMap
RoomEntranceHades
takes over with FadeOut({ Color = Color.White, Duration = 0 })
RoomSetData.Styx.D_Boss01.EntranceFunctionName = "RoomEntranceHades"
Funnily enough, the Styx -> [Redacted] transition is the only room that specifies a LoadBackgroundColor
(all others default to the engine-side black default value for world->mLoadBackgroundColor
), so I'm actually pondering if it's even worth investing time to look into it considering the difficulty for such a small issue.
RoomManager.lua
line 5102:
LoadMap({ Name = nextRoom.Name, ResetBinks = previousRoom.ResetBinksOnExit or currentRun.CurrentRoom.ResetBinksOnEnter, LoadBackgroundColor = currentRun.CurrentRoom.LoadBackgroundColor })
LoadBackgroundColor
is then retrieved from ScriptAction::LoadMap
:
And later passed to world
:
Afterwards World::RequestBegin
is called:
Color is retrieved later in World::Begin
:
And passed to World::LoadNextMap
:
It is passed to a struct of type GameScreen
as its mFullscreenSpriteEffect
field, and that's where I can't seem to progress further:
I suspect GameScreen::DrawFaded
to be involved, as it re-uses mFullscreenSpriteEffect
, but my testing so far is inconclusive:
I find it really strange that this specific overlay/texture does not scale to the whole viewport. It is as if it used some kind of custom calculations, e.g "get current height then multiply by 16:9 to get width", instead of getting both height/width.
I attempt to patch Hades with Hephaistos (3440x1440, expand HUD horizontally), but this mod is not working for me (with the latest Steam version). I get an error message :
'custom_resolution_init_window' patching: expected 1 matches in 'x64\EngineWin64s.dll', found 0
There is a bug where it will not let you select different options with controller in different menus. One of these is the opening menu at game launch.
Hi Nicolas,
After patching using the interactive mode, I'm getting the error below:
Creating a new save file is also not possible (pops up when starting a new run)
Everything works fine after restoring to pre-Hephaistos state
System
Chip: Apple M1 Pro
OS: Ventura (13.0)
Target Resolution: 3440 x 1440
Hi, thanks for adapting Hephaistos for Steam Deck! The experience has been nearly flawless, with the mirror being the only issue I've noticed in the first three locations.
Using v1.7.0, I've patched by running Hephaistos interactively, resulting in 1280x800, --scaling=vert+ and --hud=expand.
The difference is like this:
Steam Deck, SteamOS stable, Hades installed on micro SD, Hephaistos saved into same folder. I have tried verifying file integrity within the Steam Client, uninstalling/reinstalling the entire game, and downloading a fresh Hephaistos file.
I can run Hephaistos to restore without getting any errors, but run into this issue when trying to patch for the Steam Deck. Manually running ./hephaistos patch 1280 800
has the same problem, but here is my console output from running the interactive installer:
Hi! This interactive wizard will help you to set up Hephaistos.
Note: while Hephaistos can be used in interactive mode for basic usage, you will need to switch to non-interactive mode for any advanced usage. See the README for more details.
Current version: v1.7.9
Latest version: could not check latest version -- perhaps no Internet connection is available?
Pick an option:
1. Patch Hades using Hephaistos
2. Restore Hades to its pre-Hephaistos state
3. Check current Hades / Hephaistos status
4. Exit
Choice: 1
Pick an option:
1. Select from common 16:10 resolutions
2. Select from common 21:9 resolutions
3. Select from common 32:9 resolutions
4. Select from common 48:9 resolutions
5. Input resolution manually
6. Cancel
Choice: 1
Select resolution:
1. 1280 x 800
2. 1440 x 900
3. 1680 x 1050
4. 1920 x 1200
5. 2560 x 1600
6. 3840 x 2400
7. Cancel
Choice: 1
Select scaling algorithm (see README for more details):
1. [RECOMMENDED] Vert+: keeps experience close to vanilla game.
2. Pixel-based: effectively "zooms out" the camera.
3. Cancel
Choice (press ENTER to use [RECOMMENDED]):
Select HUD resizing mode (see README for more details):
1. [RECOMMENDED] Expand the HUD horizontally and vertically.
2. Keep HUD in the center of the screen with the same size as the original 16:9 HUD.
3. Cancel
Choice (press ENTER to use [RECOMMENDED]):
INFO:hephaistos:Using resolution: (1280, 800)
INFO:hephaistos:Using '--scaling=vert+': computed patch viewport (1920, 1200)
INFO:hephaistos:Using '--hud=expand': HUD will be expanded horizontally / vertically
INFO:hephaistos:Patched 'x64/EngineWin64s.dll'
INFO:hephaistos:Patched 'x64Vk/EngineWin64sv.dll'
INFO:hephaistos:Patched 'x86/EngineWin32s.dll'
INFO:hephaistos:Reading SJSON data (this operation can take time, please be patient)
INFO:hephaistos:Patched 'Content/Game/Animations/Fx.sjson'
INFO:hephaistos:Patched 'Content/Game/Animations/GUIAnimations.sjson'
INFO:hephaistos:Patched 'Content/Game/GUI/AboutScreen.sjson'
INFO:hephaistos:Patched 'Content/Game/GUI/AnnouncementScreen.sjson'
INFO:hephaistos:Patched 'Content/Game/GUI/CloudSaveUploadDialog.sjson'
INFO:hephaistos:Patched 'Content/Game/GUI/CloudSettingsScreen.sjson'
INFO:hephaistos:Patched 'Content/Game/GUI/CloudSyncDialog.sjson'
INFO:hephaistos:Patched 'Content/Game/GUI/DebugDrawGroupScreen.sjson'
INFO:hephaistos:Patched 'Content/Game/GUI/DebugKeyScreen.sjson'
INFO:hephaistos:Patched 'Content/Game/GUI/DownloadScreen.sjson'
INFO:hephaistos:Patched 'Content/Game/GUI/ExitConfirmDialog.sjson'
INFO:hephaistos:Patched 'Content/Game/GUI/InGameUI.sjson'
INFO:hephaistos:Patched 'Content/Game/GUI/KeyMappingScreen.sjson'
INFO:hephaistos:Patched 'Content/Game/GUI/LanguageScreen.sjson'
INFO:hephaistos:Patched 'Content/Game/GUI/LaunchScreen.sjson'
INFO:hephaistos:Patched 'Content/Game/GUI/LoadMapScreen.sjson'
INFO:hephaistos:Patched 'Content/Game/GUI/LoadReplayScreen.sjson'
INFO:hephaistos:Patched 'Content/Game/GUI/LoadSaveScreen.sjson'
INFO:hephaistos:Patched 'Content/Game/GUI/LoadScreen.sjson'
INFO:hephaistos:Patched 'Content/Game/GUI/MainMenuScreen.sjson'
INFO:hephaistos:Patched 'Content/Game/GUI/MenuScreen.sjson'
INFO:hephaistos:Patched 'Content/Game/GUI/MessageDialog.sjson'
INFO:hephaistos:Patched 'Content/Game/GUI/MessageDialogLarge.sjson'
INFO:hephaistos:Patched 'Content/Game/GUI/MiscSettingsScreen.sjson'
INFO:hephaistos:Patched 'Content/Game/GUI/PatchNotesScreen.sjson'
INFO:hephaistos:Patched 'Content/Game/GUI/PauseScreen.sjson'
INFO:hephaistos:Patched 'Content/Game/GUI/ProfileScreen.sjson'
INFO:hephaistos:Patched 'Content/Game/GUI/RemoteProfileScreen.sjson'
INFO:hephaistos:Patched 'Content/Game/GUI/ResolutionScreen.sjson'
INFO:hephaistos:Patched 'Content/Game/GUI/SettingsMenuScreen.sjson'
INFO:hephaistos:Patched 'Content/Game/GUI/StartNewGameScreen.sjson'
INFO:hephaistos:Patched 'Content/Game/GUI/SVNLockDialog.sjson'
INFO:hephaistos:Patched 'Content/Game/GUI/ThreeWayDialog.sjson'
INFO:hephaistos:Patched 'Content/Game/Obstacles/GUI.sjson'
WARNING:hephaistos:Did not find any 'ProfileX.sjson' in save directories:
- ../../compatdata/1145360/pfx/drive_c/users/steamuser/Documents/Saved Games/Hades
WARNING:hephaistos:Cannot patch custom resolution to 'ProfileX.sjson' (no save files found).
This is not an issue in most cases (e.g. first time you play, so no save files yet).
One exception: if you were trying to patch in a custom resolution, it will NOT work (game will appear stretched).
In this case, you should start a game to create a new save file first, and then re-run the patcher.
INFO:hephaistos:Installed Lua mod to 'Content/Mods/Hephaistos'
INFO:hephaistos:Patched 'Content/Scripts/RoomManager.lua' with hook 'Import "../Mods/Hephaistos/Hephaistos.lua"'
Press any key to continue...
I get the warning about it not finding any profile files, but not only do I definitely have saves that I can open in the game just fine, but as far as I can tell, I can see the exact file(s) that is says cannot be found:
(deck@steamdeck Hades)$ echo $PWD
/home/deck/.local/share/Steam/steamapps/compatdata/1145360/pfx/drive_c/users/steamuser/Documents/Saved Games/Hades
(deck@steamdeck Hades)$ ls
activeProfile 'Data Records' Profile1.sjson Profile1_Temp.sav.bak Profile2.sav Profile2_Temp.sav Profile2.v.sav.bak Temp
activeProfile.bak Hades.log Profile1.sjson.bak Profile1.v.sav Profile2.sjson Profile2_Temp.sav.bak Screenshots
'Data Dumps' Profile1.sav Profile1_Temp.sav Profile1.v.sav.bak Profile2.sjson.bak Profile2.v.sav steam_autocloud.vdf
I have a few different things like trying to use the python version, downloading an older version and it just can't find modimporter and I do have it installed. I'm doing this on my steam deck.
i downloaded the mod i did everything u said and its not working and i really want to play the game in ultrawide can u pls help me ty Yona.
Hello!
I've just started playing Hades again, and decided to look into mods.
Having changed monitor since I've played Hades first, I now needed Hepahistos to bring the right resolution to the game. Thanks a lot for building this.
I've also installed OlympusExtra which adds a bunch of boons, dialogues, and... keepsakes.
I've found the keepsake page to be a bit broken after installing both mods. I did not try without and it might be another issue, but this is the result I'm seeing when looking at the keepsake page in my home.
I am assuming the addition of the keepsakes (and the added invocation and arrows to switch pages for invocation) are not compatible with the mods.
Might be something to do with the order I installed the mod as well? iirc i installed modimporter, modutility, OlympusExtra and then hephaistos.
Would you be able to help?
Edit: where are my manners, a merry christmas to all of you of course :)
Thanks,
Mickael
Similar to #14 I am receiving the Failed to apply 'viewport' patch
error when attempting to patch the game
Hades: v1.38291
Hephaistos: v1.7.3
Hi! This interactive wizard will help you to set up Hephaistos.
Note: while Hephaistos can be used in interactive mode for basic usage, you will need to switch to non-interactive mode for any advanced usage. See the README for more details.
Current version: v1.7.3
Latest version: could not check latest version -- perhaps no Internet connection is available?
Pick an option:
1. Patch Hades using Hephaistos
2. Restore Hades to its pre-Hephaistos state
3. Check current Hades / Hephaistos status
4. Exit
Choice: 1
Pick an option:
1. Select from common 16:10 resolutions
2. Select from common 21:9 resolutions
3. Select from common 32:9 resolutions
4. Select from common 48:9 / triple screen resolutions
5. Input resolution manually
6. Cancel
Choice: 3
Select resolution:
1. 3840 x 1080
2. 5120 x 1440
3. Cancel
Choice: 2
Select HUD preference (for 32:9, try out both options and see what you prefer!):
1. Expand HUD horizontally / vertically (recommended for 21:9 and 16:10)
2. Keep HUD in the center (recommended for 48:9 / triple screen)
3. Cancel
Choice: 2
INFO:hephaistos:Using resolution: (5120, 1440)
INFO:hephaistos:Using '--scaling=hor+': computed patch viewport (3840, 1080)
INFO:hephaistos:Using '--hud=center': HUD will be kept in the center of the screen
ERROR:hephaistos:Failed to apply 'viewport' patch in 'Game.macOS.app/Contents/MacOS/Game.macOS' (no occurrences found)
Within the Hades dir
I only have
Hi this is more of a question, is it possible to increase the resolution of character models? I feel like they are being rendered at 720-1080p despite you running the game at 4k or above so it looks quite jarring.
Hi and thanks for this amazing tool.
I just noticed an issue and thought I'd report it.
On Linux helphaistos looks here for the savegames to patch them:
hephaistos/hephaistos/helpers.py
Lines 129 to 131 in 57c3295
The issue is, that when using Proton steam stores the "Windows Data" (so the compatdata
folder) not in the default steam library, but in the one of the game.
So for me this path is /media/path/to/my/SteamLibrary/steamapps/compatdata/1145360/pfx/drive_c/users/steamuser/Documents/Saved Games/Hades
. Maybe a argument similar to --hades-dir
could be used to specify the path (or alternatively use the path relative to the current path as we are already in /media/path/to/my/SteamLibrary/steamapps/common/Hades
.
Also I am not entirely sure if --hades-dir
works correctly or I am just doing something wrong, but I solved the issue of having to be inside the hades dir and the repostory dir (for python -m to work) by creating symlinks to all hephaistos subdirectories in the hades directory.
Apart from this the patch seems to be working perfectly.
On my macbook pro 16" (3456x2234p) I try to set the game to 1728x1117 (exactly half of full res) with your tool.
but when the game starts, it's at 1920x1200 (lowest res available in the list ingame)
I tried to repatch with the game in fullscreen and borderless, no changes
Unfortunately, hephaistos
fails to apply the patch on my Macbook.
I moved hephaistos
to /Users/marcel/Library/Application Support/Steam/steamapps/common/Hades
:
~/Library/Application Support/Steam/steamapps/common/Hades
❯ ll
total 6.9M
drwxr-xr-x 3 marcel staff 96 Apr 7 21:18 Game.macOS.app
drwxr-xr-x 4 marcel staff 128 Apr 8 18:55 hephaistos-data
-rwxr-xr-x 1 marcel staff 6.9M Feb 28 16:29 hephaistos
I executed the patching process in this directory using ./hephaistos
.
The log I get from the Terminal:
Hi! This interactive wizard will help you to set up Hephaistos.
Note: while Hephaistos can be used in interactive mode for basic usage, you will need to switch to non-interactive mode for any advanced usage. See the README for more details.
Current version: v1.6.3
Latest version: could not check latest version -- perhaps no Internet connection is available?
Pick an option:
1. Patch Hades using Hephaistos
2. Restore Hades to its pre-Hephaistos state
3. Check current Hades / Hephaistos status
4. Exit
Choice: 1
Pick an option:
1. Select from common 21:9 resolutions
2. Select from common 32:9 resolutions
3. Select from common 48:9 / triple screen resolutions
4. Input resolution manually
5. Cancel
Choice: 2
Select resolution:
1. 3840 x 1080
2. 5120 x 1440
3. Cancel
Choice: 2
Select HUD preference (for 32:9, try out both options and see what you prefer!):
1. Expand HUD horizontally (recommended for 21:9)
2. Keep HUD in the center (recommended for 48:9 / triple screen)
3. Cancel
Choice: 2
INFO:hephaistos:Using resolution: (5120, 1440)
INFO:hephaistos:Using '--scaling=hor+': computed patch viewport (3840, 1080)
INFO:hephaistos:Using '--hud=center': HUD will be kept in the center of the screen
ERROR:hephaistos:Failed to apply 'viewport' patch in 'Game.macOS.app/Contents/MacOS/Game.macOS' (no occurrences found)
I checked the printed directory Game.macOS.app/Contents/MacOS/Game.macOS
and the Game.macOS
file is present.
This seems to be a very common issue with Windows executables built by PyInstaller:
Will investigate to see if there's something I can do.
Program will not patch my game, after following the basic instructions and placing in my Steam game's directory. v1.7.1
Samsung G9 49" 5120x1440, GTX 3080 Ti. No clue what the logger issue means, tried a few options and no dice.
See full log in image below:
The target is Steam Deck, which has a 16:10 display.
The interactive mode doesn't allow this, nor the advanced mode
We need to be able to automatically tweak the GUI according to the computed viewport.
All GUI components are managed from *.lua
and *.sjson
files in the Content
directory.
EDIT: I've released v0.2.0 with initial support for GUI patching (SJSON + Lua). This first version of GUI patching patches both SJSON and Lua files:
X
, Y
, etc. properties based on their original values and the new viewport.It works fine enough, though there are still some rough edges to tackle -- I did not get all the vignette/overlays right yet, e.g. when transitioning between scenes.
In a future version I'd also move away from automatic SJSON patching to have a bit more control about how it detects what to patch, but for now the automatic patcher will do.
EDIT: Been working on progressively fixing stuff, most overlays/vignettes are good, I'm now working my way through all screens/shops. v0.6.0 is out if you'd like to have a try. Not everything's fixed yet but it's looking way better already :)
EDIT: I think I've fixed almost everything in v0.8.0 😄
There are a bunch of small effects left to fix but we're already in a excellent state, with all screens done and all major effects :)
EDIT: I'm pretty sure I've fixed almost everything in latest version v0.11.0 🎉
Finally got rid of the automatic SJSON patcher to move towards fully controlled patching.
EDIT: Released v0.12.0 and v0.13.0 with fixes for last nits (victory screen, end credits, etc.). I think we should be good for a v1.0.0 release, and also publishing on Nexus Mods. Closing issue.
Left to do (updated: v0.13.0):
To determine if something is needed / possible:
Hi, huge fan of the project, love what you're doing, thank you! I hope this helps someone.
At some point in an earlier version, Hephaistos seemed to corrupt some of my Hades files. As a result, I could not reinstall Hephaistos with really any version. Additionally, Hades could not read the save files.
I'm not sure if this is just a problem with me, but what I had to do was verify integrity files. Hephaistos was then effectively fully uninstalled (which, the program could not do by itself). Then, once I reinstalled Hephaistos, it worked, and everything is good now.
Sorry if this is either a "me only" issue, or not the right place to put this. Thought it was important.
Black bars are still visible in some menus after applying Hephaistos on Steam Deck (the appropriate settings are used: 16:10, 1280x800).
There are no black bars during gameplay or other menus, and everything else functions as it should. No issues were encountered during installation.
Let me fix it haha
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.