Git Product home page Git Product logo

ark-pets's Introduction

Ark-Pets

ArkPets icon

Arknights Desktop Pets | 明日方舟桌宠
v3.1

GitHub Top Language GitHub License GitHub Workflow Status

This project only supports Chinese docs. If you are an English user, feel free to contact us.

介 绍 Intro

实现的功能

  • 支持搜索、筛选和选择《明日方舟》小人模型并作为桌宠启动
  • 支持在启动器中显示模型的详细信息,调整缩放和帧率等设置
  • 实现了在启动器中下载模型文件、检查模型库更新等联网功能
  • 支持模拟游戏内 干员基建小人 的行为
    查看详情
    1. 能够执行行走和坐下的动作
    2. 能够被鼠标交互 (执行戳一戳动作)
    3. 能够执行基建动作 (如有)
  • 支持模拟游戏内 敌方小人 的行为
    查看详情
    1. 能够执行行走动作
    2. 能够被鼠标交互 (执行攻击动作)
  • 实现了模拟平面重力场
    查看详情
    1. 桌宠在被拖拽到空中后能够自由落体
    2. 桌宠可以站立在打开的窗口的边缘上
    3. 桌宠会受地面摩擦力和空气阻力作用
    4. 桌宠会在其他桌宠靠近时被排斥推动
    5. 桌宠活动范围的下边界距离可以调整
    6. 桌宠可以被拖拽到扩展显示屏上
  • 实现了系统托盘的菜单
    查看详情
    1. 右键托盘图标或者桌宠本体均可弹出菜单
    2. 菜单可用于保持当前动作和启用透明模式
    3. 菜单可用于切换多形态角色的形态
    4. 菜单可用于退出启动器或单个桌宠
    5. 启动器运行时,已启动的桌宠将被整合到一个托盘中
    6. 启动器若没有运行,每个桌宠将分别创建自己的托盘
  • 支持开机自启动

下一步计划

以下内容可能于后续版本实现:

  • 国际化
  • 支持我方干员战斗小人
  • 全面更新依赖库的版本
  • 覆写默认着色器和光照系统
  • 支持透明模式等配置的记忆

相关文档

使用方法 Usage

目前最新版本 支持的操作系统
GitHub latest release Windows 7+

快速上手

  1. 前往此页面下载最新的 ArkPets-Setup.exe 安装包。
  2. 运行安装包并进行软件的安装。安装完成后,打开 ArkPets 启动器。
  3. 首次使用时需要下载模型文件。请进入启动器 “选项” 页面,在模型下载处点击 “全部下载” 按钮。
  4. 进入启动器 “模型” 页面即可检索并选中想要作为桌宠启动的角色,最后点击左下角 “启动” 按钮即可。

提示:

  • 如需关闭已启动的桌宠,请右键单击桌宠或系统托盘中的 ArkPets 图标,然后选择 “退出”。
  • 若无法在软件内下载模型,可以访问 ArkModels 模型仓库页面。手动下载模型压缩包后,在 “选项” 页面点击 “导入压缩包” 按钮后导入即可。
  • 如需将软件从 v2.x 更新到更高版本,无需预先手动卸载,直接运行新版安装包即可。

额外说明

  • 检查模型库更新 :我们的模型库不定期更新,如果您想体验新实装进游戏的模型,可以进入启动器“选项”页面,在“模型下载”处点击“检查更新”。如果提示有更新,点击“全部下载”就能完成模型库更新。
  • 开机自启动 :进入启动器“选项”页面可以设置开机自启动,设置后下一次电脑开机会自动生成最后一次启动的桌宠。
  • 透明模式 :为防止用户在游戏、观看视频等情景下误触到桌宠,特增加了此模式。右键托盘后打开“透明模式”,即可屏蔽桌宠和鼠标的一切交互(点击、拖动操作都将穿透到下层窗口),并且桌宠的不透明度会降低。
  • 下边界距离 :桌宠在部分用户的电脑上无法正常检测任务栏位置(桌宠会沉入任务栏),此时您可以手动设置任务栏高度。进入启动器“选项”页面可以调整下边界距离,通常会将其设置为15的正整数倍。

高级用法

快速上手中介绍的是最简单和普遍的使用方法。除此之外:

  • 您还可以下载 zip 版的程序压缩包解压,实现免安装使用。
  • 如果您的电脑上存在 JDK17Java 运行环境,您还可以下载 jar 版的程序文件直接运行(但无法使用开机自启动功能)。
  • 如果您想用命令行启动桌宠,点击查看说明。
  • 如果您想添加自定义的模型,点击查看说明。

由于需要调用 Win32 特有的 API,目前本程序不支持在其他操作系统运行。

关 于 About

鸣谢

感谢所有曾经为 ArkPets 的开发提供过各种形式的帮助的个人和组织。

许可证

本项目基于 GPL3协议。任何人都可以自由地使用和修改项目内的源代码,前提是要在源代码或版权声明中保留作者说明和原有协议,且使用相同的许可证进行开源。

参与贡献

您可以通过提交 Issues 等各种方式参与本项目的贡献。 提交 Issues 前,请确认您的议题与已有的议题不重复。提交 Issues 时,请您完整地填写议题模板。

ark-pets's People

Contributors

half-nothing avatar isharryh 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

ark-pets's Issues

[Bug] 小人边界裁剪问题与一些建议

这些在B站私信发过了,不过Github的issue界面突然可以打开了,就再发一遍吧

问题

  • 凯尔希的M3水晶有一个角不显示 (这是属于裁切问题——作者注)

建议

  • 建议1:小人在按下Win+D返回桌面后会消失,如果可行的话或许可以让小人的窗口一直显示在最上方
  • 建议2:在选择小人模型的界面添加中文索引(滚轮一个一个猜干员英文名缩写实在是太折磨人了)
  • 建议3:增加跨桌面功能(我有两个显示器,但是小人只能在其中一个显示器上显示)
  • 建议4:开机自启动
  • 建议5:或许可以增加一个爬墙功能(不过可能会被喷抄袭shimeji) (Not Planned - 作者注)

[Bug] 多屏幕底边未对齐时小人移动问题

版本:v2.1.0-beta
问题:双屏配置如图。
image
小人从2号屏幕底边向右行走会进入1号屏幕底边「下方」的无法显示亦无法将鼠标移入的位置。
建议避免该情况。

[Exception] 无法启动桌宠窗口: GdxRuntimeException

版本2.0.1,在个别设备上启动桌宠时,启动器总是提示“检测到桌宠异常退出”,core.log 日志内容如下:

# *** ArkPets Log - core (PID5600) ***
# Created: 2023-05-07 16:41:36,173
# OS: Windows 10 (amd64)
# Java version: 20.0.1
# Working directory: C:\ArkPets

16:41:36,210 [INFO] System: Entering the app of EmbeddedLauncher
16:41:36,912 [ERROR] System: An fatal error occurs in the runtime of Lwjgl3Application, details see below.
com.badlogic.gdx.utils.GdxRuntimeException: Couldn't create window
	at com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application.createGlfwWindow(Lwjgl3Application.java:527)
	at com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application.createWindow(Lwjgl3Application.java:462)
	at com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application.createWindow(Lwjgl3Application.java:448)
	at com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application.<init>(Lwjgl3Application.java:162)
	at cn.harryh.arkpets.EmbeddedLauncher.main(EmbeddedLauncher.java:70)

可见是 libGDX 无法创建窗口(GdxRuntimeException: Couldn't create window)导致的,抛出异常的位置:
https://github.com/libgdx/libgdx/blob/1.11.0/backends/gdx-backend-lwjgl3/src/com/badlogic/gdx/backends/lwjgl3/Lwjgl3Application.java#L527

[Feature Request] 系统托盘图标功能增强

1.请求添加多个ArkPets窗口时整合在同一个系统托盘图标的二级菜单中,而非目前添加多个系统托盘图标,造成一定的识别困难和图标拥挤
2.请求在系统托盘图标的一级菜单中添加打开ArkPets管理窗口的功能,避免目前只能从安装路径打开的麻烦

[Bug] 窗体边缘识别模糊

窗体边缘识别模糊

软件设置:因为任务栏高度是40所以将下边缘距离设为40,其他默认
操作:

实验1:

  1. 打开软件,选择任意一款模型,等待其从默认位置落下
  2. 落下之后角色距任务栏仍有约30
  3. 将角色拖到较低的位置(距任务栏约300)并使其自由落下
  4. 落下之后角色距任务栏仍有约10
  5. 将角色拖到较高的位置(距任务栏约900)并使其自由落下
  6. 落下之后角色距任务栏仍有约30
  7. 等待角色坐下并点击其使其站起
  8. 站起之后角色正好在任务栏上方
  9. 等待角色坐下并点击其使其站起
  10. 站起之后角色陷入任务栏约5

实验2:

  1. 打开软件,选择任意一款模型,等待其从默认位置落下
  2. 打开一个 Google Chrome 浏览器的新标签页
  3. 将 Chrome 的窗口大小调整至约600,并将其拖动至下缘距任务栏约100
  4. 将角色拖动至 Chrome 窗口上方稍高位置并使其自由落下
  5. 落下之后角色距窗口上缘仍有约10
  6. 重复4
  7. 落下之后角色正好在窗口上缘位置
  8. 不断重复操作4
  9. 5和7的情况等概率出现
  10. 将角色拖动至标签页内部并使其自由落下
  11. 角色直接略过标签页下缘,落下之后角色距任务栏仍有约30
  12. 将标签页托从至下缘距任务栏约300,并重复操作10
  13. 角色直接略过标签页下缘,落下之后角色距任务栏仍有约30

系统是Win10,软件版本是v1.15.0
如果需要视频的话我可以发QQ(

[Feature Request] 关于透明模式记忆和快捷键的建议

软件版本:v2.3.1

描述

转载一位网友的建议,如下:

  1. 桌宠记住上次的设置时,并没有记住透明状态。很多时候希望一开机打开就是透明的不干扰工作,手动设置略显麻烦。
  2. 软件只起到生成桌宠的作用,管理还得单独调整。能不能统一管理,并设置相关快捷键。

[Bug] 模型边框裁剪问题

主要出现在部分卡特斯干员身上(因为耳朵实在是太长了)

放三张图:
image.png
image.png
image.png

主要就是耳朵会直接溢出边框,顶面侧面都有。

[Enhancement] 窗体与小人行为优化建议

由网友 elmous 提出的建议:

抛出小人后,使小人立即面向抛掷方向。

由网友 蓝铯峢痕 提出的建议:

小人自动行走至窗口边缘后翻转朝向。
多个小人重叠时增加碰撞体积。

[Exception] 无法启动桌宠窗口

我使用的JAVA版本为JAVA20,报错信息如下:

[Exception] UnexpectedExitCodeException
[Message] The process exited with a non-zero exit code: -1

[StackTrace]
Caused by cn.harryh.arkpets.utils.JavaProcess.UnexpectedExitCodeException: The process exited with a non-zero exit code: -1
  at cn.harryh.arkpets.ArkHomeFX$1.call(ArkHomeFX.java:118)
  at cn.harryh.arkpets.ArkHomeFX$1.call(ArkHomeFX.java:91)
  at javafx.concurrent.Task$TaskCallable.call(Task.java:1426)
  at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
  at java.base/java.lang.Thread.run(Unknown Source)

捕获
请问我该如何解决此问题(

[Bug] 发现几个小问题

  1. 有一种人,他们不喜欢把任务栏放在下面
  2. 部分动画产生较突兀边界
  3. 多个模型交叠时会闪烁
  4. 任务栏常驻窗口希望可以隐藏

image
image

[Exception] 桌宠运行时异常退出

[Exception] UnexpectedExitCodeException
[Message] The process exited with a non-zero exit code: 1

[StackTrace]
Caused by cn.harryh.arkpets.utils.JavaProcess.UnexpectedExitCodeException: The process exited with a non-zero exit code: 1
  at cn.harryh.arkpets.ArkHomeFX$1.call(ArkHomeFX.java:121)
  at cn.harryh.arkpets.ArkHomeFX$1.call(ArkHomeFX.java:94)
  at javafx.concurrent.Task$TaskCallable.call(Task.java:1426)
  at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
  at java.base/java.lang.Thread.run(Unknown Source)

[Bug] 动作保持时拖动浮起

软件版本:v2.2.1
运行环境:Windows 11

问题描述

任意桌宠进入动作保持模式后,在任务栏上以坐立姿势平移或竖向短距离拖动(竖向脱离任务栏后会站立,恢复正常)时会突然浮起然后恢复,看起来很怪

截图:
屏幕截图

录屏:
https://github.com/isHarryh/Ark-Pets/assets/63101620/8b86e366-9369-4f94-9462-9a2728a62028

复现方法

在当前主机上稳定出现(记得以前是没有这种现象的),其他的设备还没有测试

[Bug] 桌宠尝试原地跳高

软件版本:v2.3.0
运行环境:Windows 11

问题描述

桌宠模型频繁地原地起跳,在播放行走或基建动作前从任务栏起飞至约屏幕3/4高度处并降落。

复现方法

加载任何模型,放置一段时间待其播放行走或基建动作

[Feature Request] 添加自定义桌宠窗口大小的功能

感谢这款软件让我可以将员工放在桌面上。但是您能否添加一个设置,让用户手动调整桌面宠物窗口的大小并记住
尤其是在宽度方面,有些桌面宠物动画只有宽度的中点,占据了比较长的区域,比如凯尔奇皮肤

[Exception] 无法启动桌宠窗口: java.awt.AWTError

版本v2.1.0。每次试图启动桌宠总是会产生这个错误,无法启动。

日志:core.13956.log

# *** ArkPets Log - core (PID13956) ***
# Created: 2023-06-25 01:55:25,286
# OS: Windows 11 (amd64)
# Java version: 17.0.7
# Working directory: E:\ArkPets

01:55:25,818 [INFO] System: Entering the app of EmbeddedLauncher
01:55:29,045 [INFO] App: Create
01:55:29,050 [INFO] App: Using model asset "models\301_cutter\build_char_301_cutter"
01:55:29,545 [INFO] Character: Canvas size 149 * 168
01:55:29,626 [INFO] App: Using behavior class "BehaviorOperBuild"
01:55:30,687 [ERROR] System: An fatal error occurs in the runtime of Lwjgl3Application, details see below.
com.badlogic.gdx.utils.GdxRuntimeException: java.awt.AWTError: Assistive Technology not found: com.sun.java.accessibility.AccessBridge
	at com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application.<init>(Lwjgl3Application.java:172)
	at cn.harryh.arkpets.EmbeddedLauncher.main(EmbeddedLauncher.java:87)
Caused by: java.awt.AWTError: Assistive Technology not found: com.sun.java.accessibility.AccessBridge
	at java.desktop/java.awt.Toolkit.newAWTError(Unknown Source)
	at java.desktop/java.awt.Toolkit.fallbackToLoadClassForAT(Unknown Source)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(Unknown Source)
	at java.base/java.util.stream.ReferencePipeline$2$1.accept(Unknown Source)
	at java.base/java.util.HashMap$KeySpliterator.forEachRemaining(Unknown Source)
	at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
	at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(Unknown Source)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(Unknown Source)
	at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source)
	at java.base/java.util.stream.ReferencePipeline.forEach(Unknown Source)
	at java.desktop/java.awt.Toolkit.loadAssistiveTechnologies(Unknown Source)
	at java.desktop/java.awt.Toolkit.getDefaultToolkit(Unknown Source)
	at java.desktop/java.awt.SystemTray.addNotify(Unknown Source)
	at java.desktop/java.awt.SystemTray.<init>(Unknown Source)
	at java.desktop/java.awt.SystemTray.initializeSystemTrayIfNeeded(Unknown Source)
	at java.desktop/java.awt.SystemTray.getSystemTray(Unknown Source)
	at cn.harryh.arkpets.ArkTray.<init>(ArkTray.java:41)
	at cn.harryh.arkpets.ArkPets.create(ArkPets.java:103)
	at com.badlogic.gdx.backends.lwjgl3.Lwjgl3Window.initializeListener(Lwjgl3Window.java:416)
	at com.badlogic.gdx.backends.lwjgl3.Lwjgl3Window.update(Lwjgl3Window.java:366)
	at com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application.loop(Lwjgl3Application.java:192)
	at com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application.<init>(Lwjgl3Application.java:166)
	... 1 more
Caused by: java.lang.ClassNotFoundException: com.sun.java.accessibility.AccessBridge
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source)
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source)
	at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
	at java.base/java.lang.Class.forName0(Native Method)
	at java.base/java.lang.Class.forName(Unknown Source)
	... 23 more

[Bug] 某些模型的组件图层缺失

包括且不限于坍缩体的眼睛,灭迹人的二维码,阿格尼尔神父眼罩上的眼睛这一类不直接跟随模型的图层组件。
很难界定这到底算不算一个问题,毕竟游戏内显示逻辑上至高图层与模型就是分离的;但确实造成了显示效果的不一致,能修的话还是建议修修吧。

[Bug] 模型位置计算

复现方式:

版本 v1.5.0

  1. 载入 358_lisa_lzh#1 , 不允许坐下,缩放比 2.0,底部边界 0
  2. 将 Windows 任务栏移动到左侧。
  3. 将模型拖拽至屏幕左下角任务栏旁。
  4. 打开 PC QQ。
  5. 选中 ArkPets 窗口至最前端。(概率复现,可尝试最小化后再点开)
  6. 等待新消息,鼠标悬停任务栏闪烁头像
  7. 模型会被弹框顶上去

image

[Bug] 开机自启动后窗口在任务栏中保持高亮状态

软件版本:v2.0.1
运行环境:Windows 10

问题描述

ArkPets core使用开机自启动后,软件窗口在任务栏中一直保持高亮状态,点击该窗口也无济于事

复现方法

在程序设置中勾选开机自动启动桌宠,重启电脑,现在由于其会开机自启动,所以会自动弹出ArkPets的窗口在任务栏中,且其在任务栏中会处于高亮提示状态。在一般情况下,任务栏中窗口的高亮可以通过点击该窗口来解除,但是该问题无法由此解决,软件的窗口会一直在任务栏中高亮,除非关闭该程序。
屏幕截图 2023-11-01 152814

[Bug] 模型文件夹使用生僻字会闪退

例如将模型文件夹内的文件夹名字改为“鸮”时,会发生闪退,错误回显如下:

# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x000000007608d37d, pid=3156, tid=12660
#
# JRE version: Java(TM) SE Runtime Environment (18.0.2.1+1) (build 18.0.2.1+1-1)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (18.0.2.1+1-1, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, windows-amd64)
# Problematic frame:
# C  [gdx-freetype64.dll+0xd37d]
#
# No core dump will be written. Minidumps are not enabled by default on client versions of Windows
#
# An error report file with more information is saved as:
# E:\Arknights\Ark-Pets\hs_err_pid3156.log
#
# If you would like to submit a bug report, please visit:
#   https://bugreport.java.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.

[Exception] 解压模型完成后立即抛出异常

版本2.0.0,异常提示:

[Exception] AccessDeniedException
[Message] temp\models_unzipped\Ark-Models-main\models -> models

[StackTrace]
Caused by java.nio.file.AccessDeniedException: temp\models_unzipped\Ark-Models-main\models -> models
  at java.base/sun.nio.fs.WindowsException.translateToIOException(Unknown Source)
  at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
  at java.base/sun.nio.fs.WindowsFileCopy.move(Unknown Source)
  at java.base/sun.nio.fs.WindowsFileSystemProvider.move(Unknown Source)
  at java.base/java.nio.file.Files.move(Unknown Source)
  at cn.harryh.arkpets.controllers.Homepage$6$1.preVisitDirectory(Homepage.java:1008)
  at cn.harryh.arkpets.controllers.Homepage$6$1.preVisitDirectory(Homepage.java:993)
  at java.base/java.nio.file.Files.walkFileTree(Unknown Source)
  at java.base/java.nio.file.Files.walkFileTree(Unknown Source)
  at cn.harryh.arkpets.controllers.Homepage$6.call(Homepage.java:993)
  at cn.harryh.arkpets.controllers.Homepage$6.call(Homepage.java:983)
  at javafx.concurrent.Task$TaskCallable.call(Task.java:1426)
  at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
  at java.base/java.lang.Thread.run(Unknown Source)

[Enhancement] 窗体速度及边缘反弹建议

观察到目前丢到左右边缘时逻辑是

  • νx1 = 0
  • νy1 = νy0

同时对于脱手速度貌似没有检测


建议改为

  • νx1 = - νx0
  • νy1 = νy0

并加入速度探测 可增加可玩性

[Enhancement] 启动方式相关建议

启动方式建议

  • 单个启动->批量启动(也许可以再套多一层壳?比如一个批量能批量启动启动器的启动器)
  • 添加命令行启动方法,传入各项参数:
    • 各项设置 (Not Planned - 作者注)
    • 是否显示启动器窗体
  • 可编辑的配置文件(设置启动个数,各个实例的各项参数),存在配置文件的时候自动按配置文件启动 (Not Planned - 作者注)

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.