{"id":20579756,"url":"https://github.com/arcj137442/matriangle","last_synced_at":"2026-06-10T09:31:43.294Z","repository":{"id":202647704,"uuid":"707793171","full_name":"ARCJ137442/Matriangle","owner":"ARCJ137442","description":"A highly customizable, scalable, self-developed AI simulation environment | 一个高度可定制、可扩展的模拟AI环境","archived":false,"fork":false,"pushed_at":"2024-09-14T12:18:02.000Z","size":9801,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-10T00:42:25.731Z","etag":null,"topics":["library","simulation","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ARCJ137442.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING.LESSER","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-10-20T17:09:15.000Z","updated_at":"2024-09-14T12:18:05.000Z","dependencies_parsed_at":"2023-11-10T13:27:23.988Z","dependency_job_id":"8430720a-760f-4228-a27f-f157a85e944f","html_url":"https://github.com/ARCJ137442/Matriangle","commit_stats":null,"previous_names":["arcj137442/matriangle"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ARCJ137442/Matriangle","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ARCJ137442%2FMatriangle","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ARCJ137442%2FMatriangle/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ARCJ137442%2FMatriangle/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ARCJ137442%2FMatriangle/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ARCJ137442","download_url":"https://codeload.github.com/ARCJ137442/Matriangle/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ARCJ137442%2FMatriangle/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34146871,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-10T02:00:07.152Z","response_time":89,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["library","simulation","typescript"],"created_at":"2024-11-16T06:18:29.892Z","updated_at":"2026-06-10T09:31:42.575Z","avatar_url":"https://github.com/ARCJ137442.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Matriangle\n\n![GitHub License](https://img.shields.io/github/license/ARCJ137442/Matriangle?style=for-the-badge\u0026color=78dce8)\n![Code Size](https://img.shields.io/github/languages/code-size/ARCJ137442/Matriangle?style=for-the-badge\u0026color=78dce8)\n![Lines of Code](https://www.aschey.tech/tokei/github.com/ARCJ137442/Matriangle?style=for-the-badge\u0026color=78dce8)\n[![Language](https://img.shields.io/badge/language-TypeScript-cyan?style=for-the-badge\u0026color=78dce8)](https://www.typescriptlang.org/)\n\n![Created At](https://img.shields.io/github/created-at/ARCJ137442/Matriangle?style=for-the-badge)\n![Last Commit](https://img.shields.io/github/last-commit/ARCJ137442/Matriangle?style=for-the-badge)\n\n## Overview 概述\n\nMatriangle（中译名未定）是一个\n\n* 承继于其前身[BattleTriangle-Gamma](https://github.com/ARCJ137442/BattleTriangle-Gamma)的\n* 基于**TypeScript/Node**的\n* 基于类Minecraft「地图+实体」机制的\n* 其「地图」原生支持任意维度的\n* 用于为AI提供「网格化」「实体化」的「虚拟环境」的\n\n模拟程序库。\n\n其名由「Matrix」（取自《The Matrix》，象征「模拟」）「Triangle」（取自前身[BattleTriangle-Gamma](https://github.com/ARCJ137442/BattleTriangle-Gamma)，作为其TypeScript延续）组成。\n\n## Quick Start 快速开始\n\n### 安装\n\n作为一个npm包，Matriangle可以通过`git clone`被下载，并通过npm进行部署：\n\n```bash\ngit clone https://github.com/ARCJ137442/Matriangle.git\nnpm install\n```\n\n（确保命令的执行位置为matriangle根目录）\n\n### 运行\n\n在安装后，可直接通过npm运行：\n\n#### 显示「可执行命令」的列表（无描述）\n\n```bash\nnpm run\n```\n\n只会显示可执行的脚本（script）列表\n\n* 附带每个脚本对应的cmd指令\n* 除此之外没有其它副作用\n* 若需查看其应用，还请参照其各个实例\n  * 如[Matriangle BaTS Server](https://github.com/ARCJ137442/Matriangle-BaTS-Server)\n\n## Features 功能\n\n### 模块：API | `matriangle-api`\n\n* 许可证： ***LGPL 3.0***\n* 基于TypeScript的API，包含众多 `interface` 以及部分（实用）标准实现\n* 构建了Matriangle的基本框架和程序架构\n  * 整个模拟世界运行在一个「Matrix」（母体）中\n  * 这个「母体」由「地图」「实体」组成\n    * 地图由「方块」组成\n      * 可以是**任意**维度\n        * 其「高维方向」的存储由一个叫「任意维整数角」的机制实现\n    * 实体在「母体」中作为「智能体行动」的基础单位\n      * 由母体自身进行维护\n      * 具有高度可自定义的行为，如：\n        * 活跃：会被「母体」在每一个「世界刻」中调用功能\n        * 有坐标⇒格点/非格点：确定实体的「位置」概念\n        * 有方向：确认实体的「方向」概念\n        * ……\n      * 子集「程序」：其中「高度不变」「常用于为母体添加功能」的一类「实体」\n        * 例如：\n          * 玩家控制器\n          * 方块随机刻分派者\n          * 地图切换者\n          * ……\n        * 这些「程序」可用于实现一些「本来需要修改母体自身源码」的机制，如：\n          * 「随机刻」机制（现迁移至模组**BaTS**）\n\n### 模块：通用 | `matriangle-common`\n\n* 许可证： *MIT*\n* 直接承继于其前身的[common文件夹](https://github.com/ARCJ137442/BattleTriangle-Gamma/tree/master/batr/common)，在此基础上进行了TS化和功能迁移\n\n### 模块：遗留 | `matriangle-legacy`\n\n* 许可证： *MIT*\n* 主要包括了一些在「从 ***ActionScript 3.0*** 迁移到 ***TypeScript***」时遗留的AS3特性\n* 例如：\n  * AS3的整数类型：`int`、`uint`等\n    * 其以TS「类型别名」的形式保留，仅在项目内部使用\n  * AS3的Flash API：`DisplayObject`、`Sprite`等\n    * 此模块未来将随着「H5客户端的开发」而被弃置\n\n### 各类「模组」\n\n这些「模组」实为一个个独立的npm包，与Matriangle本身没有直接关系，但均由Matriangle提供支持。\n\n主要（已独立为npm包的）模组如下：\n\n#### 原生 | `matriangle-mod-native`\n\n* 许可证： ***LGPL 3.0***\n* 主要提供API模块 `matriangle-api` 的标准默认实现\n  * 「母体」\n  * 「稀疏地图」\n* 新引入了「玩家」`Player`的概念\n* 可为后续模组开发提供模板\n\n#### BaTS | `matriangle-mod-bats`\n\n* 许可证： ***LGPL 3.0***\n* 其前身BattleTriangle-Gamma的TS复刻，即「BattleTriangle-TS」\n  * 目前只复原了部分特性——尚未复原的如：\n    * 除「子弹」「激光」以外的「武器系统」\n    * 除「Dummy」以外的游戏AI\n    * 「游戏胜利」机制\n    * 「国际化文本」机制\n\n#### WebIO | `matriangle-mod-web-io`\n\n* 许可证： *MIT*\n* 用于「母体」服务器和各Web客户端之间的通信\n  * 基于HTTP和WebSocket双协议，可实现「远程控制」「远程监控」等功能\n\n#### 可视化 | `matriangle-mod-visualization`\n\n* 许可证： *MIT*\n* 用于「母体」中「方块」「实体」的可视化\n* 可与**WebIO**结合，实现带显示界面的远程客户端\n\n#### NAR框架 | `matriangle-mod-nar-framework`\n\n* 许可证： *MIT*\n* 用于对接AI系统[NARS](http://www.opennars.org/)，以开展AI实验的框架\n\n## 许可证\n\n包的**整体**以 ***LesserGNU General Public License v3(LGPLv3)*** 协议发布\n\n* 使用者可以在**不修改源码时**私用\n* 若使用者修改了源码，则必须将源码以相同协议发布\n\n一部分包以 *MIT* 协议发布\n\n* 此时许可相对宽松\n\n## Related Repos 相关项目\n\n前身：[BattleTriangle-Gamma](https://github.com/ARCJ137442/BattleTriangle-Gamma)\n\n## Author's Note 作者注\n\n* 该项目原先作为自身对Web开发的学习项目，用于学习TypeScript、Node与Web开发技术\n* 该项目尚未正式发布（进入「稳定版」1.0阶段），许多代码可能在未来面临大幅变动\n  * 不建议将其用于生产环境\n* 该项目的当前目标是「为AI构建虚拟环境」，尚不打算用于其它用途\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farcj137442%2Fmatriangle","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farcj137442%2Fmatriangle","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farcj137442%2Fmatriangle/lists"}