rlgym-learn-algos 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- rlgym_learn_algos-0.1.0/.github/workflows/CICD.yml +162 -0
- rlgym_learn_algos-0.1.0/.gitignore +175 -0
- rlgym_learn_algos-0.1.0/Cargo.lock +272 -0
- rlgym_learn_algos-0.1.0/Cargo.toml +17 -0
- rlgym_learn_algos-0.1.0/PKG-INFO +39 -0
- rlgym_learn_algos-0.1.0/README.md +29 -0
- rlgym_learn_algos-0.1.0/pyproject.toml +14 -0
- rlgym_learn_algos-0.1.0/requirements.txt +6 -0
- rlgym_learn_algos-0.1.0/rlgym_learn_algos/__init__.py +4 -0
- rlgym_learn_algos-0.1.0/rlgym_learn_algos/logging/__init__.py +14 -0
- rlgym_learn_algos-0.1.0/rlgym_learn_algos/logging/dict_metrics_logger.py +73 -0
- rlgym_learn_algos-0.1.0/rlgym_learn_algos/logging/metrics_logger.py +87 -0
- rlgym_learn_algos-0.1.0/rlgym_learn_algos/logging/wandb_metrics_logger.py +176 -0
- rlgym_learn_algos-0.1.0/rlgym_learn_algos/ppo/__init__.py +37 -0
- rlgym_learn_algos-0.1.0/rlgym_learn_algos/ppo/actor.py +40 -0
- rlgym_learn_algos-0.1.0/rlgym_learn_algos/ppo/basic_critic.py +32 -0
- rlgym_learn_algos-0.1.0/rlgym_learn_algos/ppo/continuous_actor.py +121 -0
- rlgym_learn_algos-0.1.0/rlgym_learn_algos/ppo/critic.py +20 -0
- rlgym_learn_algos-0.1.0/rlgym_learn_algos/ppo/discrete_actor.py +73 -0
- rlgym_learn_algos-0.1.0/rlgym_learn_algos/ppo/env_trajectories.py +91 -0
- rlgym_learn_algos-0.1.0/rlgym_learn_algos/ppo/experience_buffer.py +262 -0
- rlgym_learn_algos-0.1.0/rlgym_learn_algos/ppo/experience_buffer_numpy.py +161 -0
- rlgym_learn_algos-0.1.0/rlgym_learn_algos/ppo/gae_trajectory_processor.py +155 -0
- rlgym_learn_algos-0.1.0/rlgym_learn_algos/ppo/gae_trajectory_processor_pure_python.py +182 -0
- rlgym_learn_algos-0.1.0/rlgym_learn_algos/ppo/multi_discrete_actor.py +88 -0
- rlgym_learn_algos-0.1.0/rlgym_learn_algos/ppo/ppo_agent_controller.py +564 -0
- rlgym_learn_algos-0.1.0/rlgym_learn_algos/ppo/ppo_learner.py +346 -0
- rlgym_learn_algos-0.1.0/rlgym_learn_algos/ppo/ppo_metrics_logger.py +62 -0
- rlgym_learn_algos-0.1.0/rlgym_learn_algos/ppo/trajectory.py +29 -0
- rlgym_learn_algos-0.1.0/rlgym_learn_algos/ppo/trajectory_processor.py +59 -0
- rlgym_learn_algos-0.1.0/rlgym_learn_algos/py.typed +0 -0
- rlgym_learn_algos-0.1.0/rlgym_learn_algos/rlgym_learn_algos.pyi +38 -0
- rlgym_learn_algos-0.1.0/rlgym_learn_algos/stateful_functions/__init__.py +6 -0
- rlgym_learn_algos-0.1.0/rlgym_learn_algos/stateful_functions/batch_reward_type_numpy_converter.py +24 -0
- rlgym_learn_algos-0.1.0/rlgym_learn_algos/stateful_functions/numpy_obs_standardizer.py +45 -0
- rlgym_learn_algos-0.1.0/rlgym_learn_algos/stateful_functions/obs_standardizer.py +17 -0
- rlgym_learn_algos-0.1.0/rlgym_learn_algos/util/__init__.py +1 -0
- rlgym_learn_algos-0.1.0/rlgym_learn_algos/util/running_stats.py +140 -0
- rlgym_learn_algos-0.1.0/rlgym_learn_algos/util/torch_functions.py +92 -0
- rlgym_learn_algos-0.1.0/setup.py +51 -0
- rlgym_learn_algos-0.1.0/src/common/mod.rs +3 -0
- rlgym_learn_algos-0.1.0/src/common/numpy_dtype.rs +77 -0
- rlgym_learn_algos-0.1.0/src/lib.rs +13 -0
- rlgym_learn_algos-0.1.0/src/misc.rs +52 -0
- rlgym_learn_algos-0.1.0/src/ppo/gae_trajectory_processor.rs +222 -0
- rlgym_learn_algos-0.1.0/src/ppo/mod.rs +2 -0
- rlgym_learn_algos-0.1.0/src/ppo/trajectory.rs +15 -0
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
name: CICD
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
- master
|
|
8
|
+
tags:
|
|
9
|
+
- '*'
|
|
10
|
+
pull_request:
|
|
11
|
+
workflow_dispatch:
|
|
12
|
+
|
|
13
|
+
permissions:
|
|
14
|
+
contents: read
|
|
15
|
+
id-token: write
|
|
16
|
+
|
|
17
|
+
jobs:
|
|
18
|
+
linux:
|
|
19
|
+
runs-on: ${{ matrix.platform.runner }}
|
|
20
|
+
strategy:
|
|
21
|
+
matrix:
|
|
22
|
+
platform:
|
|
23
|
+
- runner: ubuntu-latest
|
|
24
|
+
target: x86_64
|
|
25
|
+
- runner: ubuntu-latest
|
|
26
|
+
target: x86
|
|
27
|
+
- runner: ubuntu-latest
|
|
28
|
+
target: aarch64
|
|
29
|
+
- runner: ubuntu-latest
|
|
30
|
+
target: armv7
|
|
31
|
+
- runner: ubuntu-latest
|
|
32
|
+
target: s390x
|
|
33
|
+
- runner: ubuntu-latest
|
|
34
|
+
target: ppc64le
|
|
35
|
+
steps:
|
|
36
|
+
- uses: actions/checkout@v4
|
|
37
|
+
- uses: actions/setup-python@v5
|
|
38
|
+
with:
|
|
39
|
+
python-version: 3.x
|
|
40
|
+
- name: Build wheels
|
|
41
|
+
uses: PyO3/maturin-action@v1
|
|
42
|
+
with:
|
|
43
|
+
target: ${{ matrix.platform.target }}
|
|
44
|
+
args: --release --out dist --interpreter python-3.8 --interpreter python-3.9 --interpreter python-3.10 --interpreter python-3.11 --interpreter python-3.12
|
|
45
|
+
sccache: 'true'
|
|
46
|
+
manylinux: auto
|
|
47
|
+
- name: Upload wheels
|
|
48
|
+
uses: actions/upload-artifact@v4
|
|
49
|
+
with:
|
|
50
|
+
name: wheels-linux-${{ matrix.platform.target }}
|
|
51
|
+
path: dist
|
|
52
|
+
|
|
53
|
+
musllinux:
|
|
54
|
+
runs-on: ${{ matrix.platform.runner }}
|
|
55
|
+
strategy:
|
|
56
|
+
matrix:
|
|
57
|
+
platform:
|
|
58
|
+
- runner: ubuntu-latest
|
|
59
|
+
target: x86_64
|
|
60
|
+
- runner: ubuntu-latest
|
|
61
|
+
target: x86
|
|
62
|
+
- runner: ubuntu-latest
|
|
63
|
+
target: aarch64
|
|
64
|
+
- runner: ubuntu-latest
|
|
65
|
+
target: armv7
|
|
66
|
+
steps:
|
|
67
|
+
- uses: actions/checkout@v4
|
|
68
|
+
- uses: actions/setup-python@v5
|
|
69
|
+
with:
|
|
70
|
+
python-version: 3.x
|
|
71
|
+
- name: Build wheels
|
|
72
|
+
uses: PyO3/maturin-action@v1
|
|
73
|
+
with:
|
|
74
|
+
target: ${{ matrix.platform.target }}
|
|
75
|
+
args: --release --out dist --interpreter python-3.8 --interpreter python-3.9 --interpreter python-3.10 --interpreter python-3.11 --interpreter python-3.12
|
|
76
|
+
sccache: 'true'
|
|
77
|
+
manylinux: musllinux_1_2
|
|
78
|
+
- name: Upload wheels
|
|
79
|
+
uses: actions/upload-artifact@v4
|
|
80
|
+
with:
|
|
81
|
+
name: wheels-musllinux-${{ matrix.platform.target }}
|
|
82
|
+
path: dist
|
|
83
|
+
|
|
84
|
+
windows:
|
|
85
|
+
runs-on: ${{ matrix.platform.runner }}
|
|
86
|
+
strategy:
|
|
87
|
+
matrix:
|
|
88
|
+
platform:
|
|
89
|
+
- runner: windows-latest
|
|
90
|
+
target: x64
|
|
91
|
+
- runner: windows-latest
|
|
92
|
+
target: x86
|
|
93
|
+
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
|
|
94
|
+
steps:
|
|
95
|
+
- uses: actions/checkout@v4
|
|
96
|
+
- uses: actions/setup-python@v5
|
|
97
|
+
with:
|
|
98
|
+
python-version: ${{ matrix.python-version }}
|
|
99
|
+
architecture: ${{ matrix.platform.target }}
|
|
100
|
+
- name: Build wheels
|
|
101
|
+
uses: PyO3/maturin-action@v1
|
|
102
|
+
with:
|
|
103
|
+
target: ${{ matrix.platform.target }}
|
|
104
|
+
args: --release --out dist
|
|
105
|
+
sccache: 'true'
|
|
106
|
+
- name: Upload wheels
|
|
107
|
+
uses: actions/upload-artifact@v4
|
|
108
|
+
with:
|
|
109
|
+
name: wheels-windows-${{ matrix.platform.target }}-${{ matrix.python-version }}
|
|
110
|
+
path: dist
|
|
111
|
+
|
|
112
|
+
macos:
|
|
113
|
+
runs-on: ${{ matrix.platform.runner }}
|
|
114
|
+
strategy:
|
|
115
|
+
matrix:
|
|
116
|
+
platform:
|
|
117
|
+
- runner: macos-14
|
|
118
|
+
target: aarch64
|
|
119
|
+
steps:
|
|
120
|
+
- uses: actions/checkout@v4
|
|
121
|
+
- uses: actions/setup-python@v5
|
|
122
|
+
with:
|
|
123
|
+
python-version: 3.x
|
|
124
|
+
- name: Build wheels
|
|
125
|
+
uses: PyO3/maturin-action@v1
|
|
126
|
+
with:
|
|
127
|
+
target: ${{ matrix.platform.target }}
|
|
128
|
+
args: --release --out dist --interpreter python
|
|
129
|
+
sccache: 'true'
|
|
130
|
+
- name: Upload wheels
|
|
131
|
+
uses: actions/upload-artifact@v4
|
|
132
|
+
with:
|
|
133
|
+
name: wheels-macos-${{ matrix.platform.target }}
|
|
134
|
+
path: dist
|
|
135
|
+
|
|
136
|
+
sdist:
|
|
137
|
+
runs-on: ubuntu-latest
|
|
138
|
+
steps:
|
|
139
|
+
- uses: actions/checkout@v4
|
|
140
|
+
- name: Build sdist
|
|
141
|
+
uses: PyO3/maturin-action@v1
|
|
142
|
+
with:
|
|
143
|
+
command: sdist
|
|
144
|
+
args: --out dist
|
|
145
|
+
- name: Upload sdist
|
|
146
|
+
uses: actions/upload-artifact@v4
|
|
147
|
+
with:
|
|
148
|
+
name: wheels-sdist
|
|
149
|
+
path: dist
|
|
150
|
+
|
|
151
|
+
release:
|
|
152
|
+
name: Release
|
|
153
|
+
runs-on: ubuntu-latest
|
|
154
|
+
if: "startsWith(github.ref, 'refs/tags/')"
|
|
155
|
+
needs: [linux, musllinux, windows, macos, sdist]
|
|
156
|
+
steps:
|
|
157
|
+
- uses: actions/download-artifact@v4
|
|
158
|
+
- name: Publish to PyPI
|
|
159
|
+
uses: PyO3/maturin-action@v1
|
|
160
|
+
with:
|
|
161
|
+
command: upload
|
|
162
|
+
args: --non-interactive --skip-existing wheels-*/*
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
# Byte-compiled / optimized / DLL files
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*$py.class
|
|
5
|
+
|
|
6
|
+
# C extensions
|
|
7
|
+
*.so
|
|
8
|
+
|
|
9
|
+
# Distribution / packaging
|
|
10
|
+
.Python
|
|
11
|
+
build/
|
|
12
|
+
develop-eggs/
|
|
13
|
+
dist/
|
|
14
|
+
downloads/
|
|
15
|
+
eggs/
|
|
16
|
+
.eggs/
|
|
17
|
+
lib/
|
|
18
|
+
lib64/
|
|
19
|
+
parts/
|
|
20
|
+
sdist/
|
|
21
|
+
var/
|
|
22
|
+
wheels/
|
|
23
|
+
share/python-wheels/
|
|
24
|
+
*.egg-info/
|
|
25
|
+
.installed.cfg
|
|
26
|
+
*.egg
|
|
27
|
+
MANIFEST
|
|
28
|
+
|
|
29
|
+
# PyInstaller
|
|
30
|
+
# Usually these files are written by a python script from a template
|
|
31
|
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
|
32
|
+
*.manifest
|
|
33
|
+
*.spec
|
|
34
|
+
|
|
35
|
+
# Installer logs
|
|
36
|
+
pip-log.txt
|
|
37
|
+
pip-delete-this-directory.txt
|
|
38
|
+
|
|
39
|
+
# Unit test / coverage reports
|
|
40
|
+
htmlcov/
|
|
41
|
+
.tox/
|
|
42
|
+
.nox/
|
|
43
|
+
.coverage
|
|
44
|
+
.coverage.*
|
|
45
|
+
.cache
|
|
46
|
+
nosetests.xml
|
|
47
|
+
coverage.xml
|
|
48
|
+
*.cover
|
|
49
|
+
*.py,cover
|
|
50
|
+
.hypothesis/
|
|
51
|
+
.pytest_cache/
|
|
52
|
+
cover/
|
|
53
|
+
|
|
54
|
+
# Translations
|
|
55
|
+
*.mo
|
|
56
|
+
*.pot
|
|
57
|
+
|
|
58
|
+
# Django stuff:
|
|
59
|
+
*.log
|
|
60
|
+
local_settings.py
|
|
61
|
+
db.sqlite3
|
|
62
|
+
db.sqlite3-journal
|
|
63
|
+
|
|
64
|
+
# Flask stuff:
|
|
65
|
+
instance/
|
|
66
|
+
.webassets-cache
|
|
67
|
+
|
|
68
|
+
# Scrapy stuff:
|
|
69
|
+
.scrapy
|
|
70
|
+
|
|
71
|
+
# Sphinx documentation
|
|
72
|
+
docs/_build/
|
|
73
|
+
|
|
74
|
+
# PyBuilder
|
|
75
|
+
.pybuilder/
|
|
76
|
+
target/
|
|
77
|
+
|
|
78
|
+
# Jupyter Notebook
|
|
79
|
+
.ipynb_checkpoints
|
|
80
|
+
|
|
81
|
+
# IPython
|
|
82
|
+
profile_default/
|
|
83
|
+
ipython_config.py
|
|
84
|
+
|
|
85
|
+
# pyenv
|
|
86
|
+
# For a library or package, you might want to ignore these files since the code is
|
|
87
|
+
# intended to run in multiple environments; otherwise, check them in:
|
|
88
|
+
# .python-version
|
|
89
|
+
|
|
90
|
+
# pipenv
|
|
91
|
+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
|
92
|
+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
|
93
|
+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
|
94
|
+
# install all needed dependencies.
|
|
95
|
+
#Pipfile.lock
|
|
96
|
+
|
|
97
|
+
# poetry
|
|
98
|
+
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
|
|
99
|
+
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
|
100
|
+
# commonly ignored for libraries.
|
|
101
|
+
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
|
|
102
|
+
#poetry.lock
|
|
103
|
+
|
|
104
|
+
# pdm
|
|
105
|
+
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
|
|
106
|
+
#pdm.lock
|
|
107
|
+
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
|
|
108
|
+
# in version control.
|
|
109
|
+
# https://pdm.fming.dev/#use-with-ide
|
|
110
|
+
.pdm.toml
|
|
111
|
+
|
|
112
|
+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
|
|
113
|
+
__pypackages__/
|
|
114
|
+
|
|
115
|
+
# Celery stuff
|
|
116
|
+
celerybeat-schedule
|
|
117
|
+
celerybeat.pid
|
|
118
|
+
|
|
119
|
+
# SageMath parsed files
|
|
120
|
+
*.sage.py
|
|
121
|
+
|
|
122
|
+
# Environments
|
|
123
|
+
.env
|
|
124
|
+
.venv
|
|
125
|
+
env/
|
|
126
|
+
venv/
|
|
127
|
+
ENV/
|
|
128
|
+
env.bak/
|
|
129
|
+
venv.bak/
|
|
130
|
+
|
|
131
|
+
# Spyder project settings
|
|
132
|
+
.spyderproject
|
|
133
|
+
.spyproject
|
|
134
|
+
|
|
135
|
+
# Rope project settings
|
|
136
|
+
.ropeproject
|
|
137
|
+
|
|
138
|
+
# mkdocs documentation
|
|
139
|
+
/site
|
|
140
|
+
|
|
141
|
+
# mypy
|
|
142
|
+
.mypy_cache/
|
|
143
|
+
.dmypy.json
|
|
144
|
+
dmypy.json
|
|
145
|
+
|
|
146
|
+
# Pyre type checker
|
|
147
|
+
.pyre/
|
|
148
|
+
|
|
149
|
+
# pytype static type analyzer
|
|
150
|
+
.pytype/
|
|
151
|
+
|
|
152
|
+
# Cython debug symbols
|
|
153
|
+
cython_debug/
|
|
154
|
+
|
|
155
|
+
.idea/
|
|
156
|
+
.sourcery.yaml
|
|
157
|
+
rlgym-ppo.code-workspace
|
|
158
|
+
.vscode/settings.json
|
|
159
|
+
*.code-workspace
|
|
160
|
+
|
|
161
|
+
# vscode config
|
|
162
|
+
/.vscode
|
|
163
|
+
|
|
164
|
+
# testing data
|
|
165
|
+
/data
|
|
166
|
+
/wandb
|
|
167
|
+
config.json
|
|
168
|
+
/agent_controllers_checkpoints
|
|
169
|
+
tests*.py
|
|
170
|
+
*.prof
|
|
171
|
+
*.pkl
|
|
172
|
+
|
|
173
|
+
# Added by cargo
|
|
174
|
+
|
|
175
|
+
/target
|
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
# This file is automatically @generated by Cargo.
|
|
2
|
+
# It is not intended for manual editing.
|
|
3
|
+
version = 3
|
|
4
|
+
|
|
5
|
+
[[package]]
|
|
6
|
+
name = "autocfg"
|
|
7
|
+
version = "1.3.0"
|
|
8
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
9
|
+
checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"
|
|
10
|
+
|
|
11
|
+
[[package]]
|
|
12
|
+
name = "cfg-if"
|
|
13
|
+
version = "1.0.0"
|
|
14
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
15
|
+
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
|
|
16
|
+
|
|
17
|
+
[[package]]
|
|
18
|
+
name = "either"
|
|
19
|
+
version = "1.15.0"
|
|
20
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
21
|
+
checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719"
|
|
22
|
+
|
|
23
|
+
[[package]]
|
|
24
|
+
name = "heck"
|
|
25
|
+
version = "0.5.0"
|
|
26
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
27
|
+
checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
|
|
28
|
+
|
|
29
|
+
[[package]]
|
|
30
|
+
name = "indoc"
|
|
31
|
+
version = "2.0.5"
|
|
32
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
33
|
+
checksum = "b248f5224d1d606005e02c97f5aa4e88eeb230488bcc03bc9ca4d7991399f2b5"
|
|
34
|
+
|
|
35
|
+
[[package]]
|
|
36
|
+
name = "itertools"
|
|
37
|
+
version = "0.14.0"
|
|
38
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
39
|
+
checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285"
|
|
40
|
+
dependencies = [
|
|
41
|
+
"either",
|
|
42
|
+
]
|
|
43
|
+
|
|
44
|
+
[[package]]
|
|
45
|
+
name = "libc"
|
|
46
|
+
version = "0.2.169"
|
|
47
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
48
|
+
checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a"
|
|
49
|
+
|
|
50
|
+
[[package]]
|
|
51
|
+
name = "matrixmultiply"
|
|
52
|
+
version = "0.3.9"
|
|
53
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
54
|
+
checksum = "9380b911e3e96d10c1f415da0876389aaf1b56759054eeb0de7df940c456ba1a"
|
|
55
|
+
dependencies = [
|
|
56
|
+
"autocfg",
|
|
57
|
+
"rawpointer",
|
|
58
|
+
]
|
|
59
|
+
|
|
60
|
+
[[package]]
|
|
61
|
+
name = "memoffset"
|
|
62
|
+
version = "0.9.1"
|
|
63
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
64
|
+
checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
|
|
65
|
+
dependencies = [
|
|
66
|
+
"autocfg",
|
|
67
|
+
]
|
|
68
|
+
|
|
69
|
+
[[package]]
|
|
70
|
+
name = "ndarray"
|
|
71
|
+
version = "0.15.6"
|
|
72
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
73
|
+
checksum = "adb12d4e967ec485a5f71c6311fe28158e9d6f4bc4a447b474184d0f91a8fa32"
|
|
74
|
+
dependencies = [
|
|
75
|
+
"matrixmultiply",
|
|
76
|
+
"num-complex",
|
|
77
|
+
"num-integer",
|
|
78
|
+
"num-traits",
|
|
79
|
+
"rawpointer",
|
|
80
|
+
]
|
|
81
|
+
|
|
82
|
+
[[package]]
|
|
83
|
+
name = "num-complex"
|
|
84
|
+
version = "0.4.6"
|
|
85
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
86
|
+
checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495"
|
|
87
|
+
dependencies = [
|
|
88
|
+
"num-traits",
|
|
89
|
+
]
|
|
90
|
+
|
|
91
|
+
[[package]]
|
|
92
|
+
name = "num-integer"
|
|
93
|
+
version = "0.1.46"
|
|
94
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
95
|
+
checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"
|
|
96
|
+
dependencies = [
|
|
97
|
+
"num-traits",
|
|
98
|
+
]
|
|
99
|
+
|
|
100
|
+
[[package]]
|
|
101
|
+
name = "num-traits"
|
|
102
|
+
version = "0.2.19"
|
|
103
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
104
|
+
checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
|
|
105
|
+
dependencies = [
|
|
106
|
+
"autocfg",
|
|
107
|
+
]
|
|
108
|
+
|
|
109
|
+
[[package]]
|
|
110
|
+
name = "numpy"
|
|
111
|
+
version = "0.23.0"
|
|
112
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
113
|
+
checksum = "b94caae805f998a07d33af06e6a3891e38556051b8045c615470a71590e13e78"
|
|
114
|
+
dependencies = [
|
|
115
|
+
"libc",
|
|
116
|
+
"ndarray",
|
|
117
|
+
"num-complex",
|
|
118
|
+
"num-integer",
|
|
119
|
+
"num-traits",
|
|
120
|
+
"pyo3",
|
|
121
|
+
"rustc-hash",
|
|
122
|
+
]
|
|
123
|
+
|
|
124
|
+
[[package]]
|
|
125
|
+
name = "once_cell"
|
|
126
|
+
version = "1.19.0"
|
|
127
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
128
|
+
checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
|
|
129
|
+
|
|
130
|
+
[[package]]
|
|
131
|
+
name = "paste"
|
|
132
|
+
version = "1.0.15"
|
|
133
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
134
|
+
checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a"
|
|
135
|
+
|
|
136
|
+
[[package]]
|
|
137
|
+
name = "portable-atomic"
|
|
138
|
+
version = "1.7.0"
|
|
139
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
140
|
+
checksum = "da544ee218f0d287a911e9c99a39a8c9bc8fcad3cb8db5959940044ecfc67265"
|
|
141
|
+
|
|
142
|
+
[[package]]
|
|
143
|
+
name = "proc-macro2"
|
|
144
|
+
version = "1.0.86"
|
|
145
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
146
|
+
checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77"
|
|
147
|
+
dependencies = [
|
|
148
|
+
"unicode-ident",
|
|
149
|
+
]
|
|
150
|
+
|
|
151
|
+
[[package]]
|
|
152
|
+
name = "pyo3"
|
|
153
|
+
version = "0.23.4"
|
|
154
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
155
|
+
checksum = "57fe09249128b3173d092de9523eaa75136bf7ba85e0d69eca241c7939c933cc"
|
|
156
|
+
dependencies = [
|
|
157
|
+
"cfg-if",
|
|
158
|
+
"indoc",
|
|
159
|
+
"libc",
|
|
160
|
+
"memoffset",
|
|
161
|
+
"once_cell",
|
|
162
|
+
"portable-atomic",
|
|
163
|
+
"pyo3-build-config",
|
|
164
|
+
"pyo3-ffi",
|
|
165
|
+
"pyo3-macros",
|
|
166
|
+
"unindent",
|
|
167
|
+
]
|
|
168
|
+
|
|
169
|
+
[[package]]
|
|
170
|
+
name = "pyo3-build-config"
|
|
171
|
+
version = "0.23.4"
|
|
172
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
173
|
+
checksum = "1cd3927b5a78757a0d71aa9dff669f903b1eb64b54142a9bd9f757f8fde65fd7"
|
|
174
|
+
dependencies = [
|
|
175
|
+
"once_cell",
|
|
176
|
+
"target-lexicon",
|
|
177
|
+
]
|
|
178
|
+
|
|
179
|
+
[[package]]
|
|
180
|
+
name = "pyo3-ffi"
|
|
181
|
+
version = "0.23.4"
|
|
182
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
183
|
+
checksum = "dab6bb2102bd8f991e7749f130a70d05dd557613e39ed2deeee8e9ca0c4d548d"
|
|
184
|
+
dependencies = [
|
|
185
|
+
"libc",
|
|
186
|
+
"pyo3-build-config",
|
|
187
|
+
]
|
|
188
|
+
|
|
189
|
+
[[package]]
|
|
190
|
+
name = "pyo3-macros"
|
|
191
|
+
version = "0.23.4"
|
|
192
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
193
|
+
checksum = "91871864b353fd5ffcb3f91f2f703a22a9797c91b9ab497b1acac7b07ae509c7"
|
|
194
|
+
dependencies = [
|
|
195
|
+
"proc-macro2",
|
|
196
|
+
"pyo3-macros-backend",
|
|
197
|
+
"quote",
|
|
198
|
+
"syn",
|
|
199
|
+
]
|
|
200
|
+
|
|
201
|
+
[[package]]
|
|
202
|
+
name = "pyo3-macros-backend"
|
|
203
|
+
version = "0.23.4"
|
|
204
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
205
|
+
checksum = "43abc3b80bc20f3facd86cd3c60beed58c3e2aa26213f3cda368de39c60a27e4"
|
|
206
|
+
dependencies = [
|
|
207
|
+
"heck",
|
|
208
|
+
"proc-macro2",
|
|
209
|
+
"pyo3-build-config",
|
|
210
|
+
"quote",
|
|
211
|
+
"syn",
|
|
212
|
+
]
|
|
213
|
+
|
|
214
|
+
[[package]]
|
|
215
|
+
name = "quote"
|
|
216
|
+
version = "1.0.36"
|
|
217
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
218
|
+
checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
|
|
219
|
+
dependencies = [
|
|
220
|
+
"proc-macro2",
|
|
221
|
+
]
|
|
222
|
+
|
|
223
|
+
[[package]]
|
|
224
|
+
name = "rawpointer"
|
|
225
|
+
version = "0.2.1"
|
|
226
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
227
|
+
checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3"
|
|
228
|
+
|
|
229
|
+
[[package]]
|
|
230
|
+
name = "rlgym-learn-algos"
|
|
231
|
+
version = "0.1.0"
|
|
232
|
+
dependencies = [
|
|
233
|
+
"itertools",
|
|
234
|
+
"numpy",
|
|
235
|
+
"paste",
|
|
236
|
+
"pyo3",
|
|
237
|
+
]
|
|
238
|
+
|
|
239
|
+
[[package]]
|
|
240
|
+
name = "rustc-hash"
|
|
241
|
+
version = "2.1.0"
|
|
242
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
243
|
+
checksum = "c7fb8039b3032c191086b10f11f319a6e99e1e82889c5cc6046f515c9db1d497"
|
|
244
|
+
|
|
245
|
+
[[package]]
|
|
246
|
+
name = "syn"
|
|
247
|
+
version = "2.0.75"
|
|
248
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
249
|
+
checksum = "f6af063034fc1935ede7be0122941bafa9bacb949334d090b77ca98b5817c7d9"
|
|
250
|
+
dependencies = [
|
|
251
|
+
"proc-macro2",
|
|
252
|
+
"quote",
|
|
253
|
+
"unicode-ident",
|
|
254
|
+
]
|
|
255
|
+
|
|
256
|
+
[[package]]
|
|
257
|
+
name = "target-lexicon"
|
|
258
|
+
version = "0.12.16"
|
|
259
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
260
|
+
checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1"
|
|
261
|
+
|
|
262
|
+
[[package]]
|
|
263
|
+
name = "unicode-ident"
|
|
264
|
+
version = "1.0.12"
|
|
265
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
266
|
+
checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
|
|
267
|
+
|
|
268
|
+
[[package]]
|
|
269
|
+
name = "unindent"
|
|
270
|
+
version = "0.2.3"
|
|
271
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
272
|
+
checksum = "c7de7d73e1754487cb58364ee906a499937a0dfabd86bcb980fa99ec8c8fa2ce"
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
[package]
|
|
2
|
+
name = "rlgym-learn-algos"
|
|
3
|
+
version = "0.1.0"
|
|
4
|
+
edition = "2021"
|
|
5
|
+
description = "Rust backend for the more expensive parts of the rlgym-learn-algos python module"
|
|
6
|
+
license="Apache-2.0"
|
|
7
|
+
|
|
8
|
+
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
|
9
|
+
[lib]
|
|
10
|
+
name = "rlgym_learn_algos"
|
|
11
|
+
crate-type = ["cdylib"]
|
|
12
|
+
|
|
13
|
+
[dependencies]
|
|
14
|
+
numpy = "0.23.0"
|
|
15
|
+
pyo3 = { version = "0.23.4", features = ["extension-module", "py-clone"] }
|
|
16
|
+
paste = "1.0.15"
|
|
17
|
+
itertools = "0.14.0"
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: rlgym-learn-algos
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Classifier: Programming Language :: Rust
|
|
5
|
+
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
6
|
+
Summary: Rust backend for the more expensive parts of the rlgym-learn-algos python module
|
|
7
|
+
License: Apache-2.0
|
|
8
|
+
Requires-Python: >=3.8, <3.13
|
|
9
|
+
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
|
|
10
|
+
|
|
11
|
+
# RLGym-Learn-algos
|
|
12
|
+
A set of standard implementations of common algorithms for use with [rlgym-learn](https://github.com/JPK314/rlgym-learn)
|
|
13
|
+
|
|
14
|
+
## Features
|
|
15
|
+
- PPO agent controller
|
|
16
|
+
- Flexible metrics logging
|
|
17
|
+
- File-based configuration
|
|
18
|
+
|
|
19
|
+
## Installation
|
|
20
|
+
1. install RLGym via `pip install rlgym`. If you're here for Rocket League, you can use `pip install rlgym[rl-rlviser]` instead to get the RLGym API as well as the Rocket League / Sim submodules and [rlviser](https://github.com/VirxEC/rlviser) support.
|
|
21
|
+
2. If you would like to use a GPU install [PyTorch with CUDA](https://pytorch.org/get-started/locally/)
|
|
22
|
+
3. Install rlgym-learn via `pip install rlgym-learn`
|
|
23
|
+
3. Install this project via `pip install rlgym-learn-algos`
|
|
24
|
+
4. If pip installing fails at first, install Rust by following the instructions [here](https://rustup.rs/)
|
|
25
|
+
|
|
26
|
+
## Usage
|
|
27
|
+
See the [RLGym website](https://rlgym.org/RLGym%20Learn/introduction/) for complete documentation and demonstration of functionality [COMING SOON]. For now, you can take a look at `quick_start_guide.py` and `speed_test.py` in the rlgym-learn repo to get a sense of what's going on.
|
|
28
|
+
|
|
29
|
+
## Credits
|
|
30
|
+
This code was separated out from rlgym-learn, which itself was created using rlgym-ppo as a base. The following files were largely written by Matthew Allen, the creator of rlgym-ppo:
|
|
31
|
+
ppo/basic_critic.py
|
|
32
|
+
ppo/continuous_actor.py
|
|
33
|
+
ppo/critic.py
|
|
34
|
+
ppo/discrete_actor.py
|
|
35
|
+
ppo/multi_discrete_actor.py
|
|
36
|
+
ppo/experience_buffer.py
|
|
37
|
+
util/*
|
|
38
|
+
|
|
39
|
+
In general his support for this project has allowed it to become what it is today.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# RLGym-Learn-algos
|
|
2
|
+
A set of standard implementations of common algorithms for use with [rlgym-learn](https://github.com/JPK314/rlgym-learn)
|
|
3
|
+
|
|
4
|
+
## Features
|
|
5
|
+
- PPO agent controller
|
|
6
|
+
- Flexible metrics logging
|
|
7
|
+
- File-based configuration
|
|
8
|
+
|
|
9
|
+
## Installation
|
|
10
|
+
1. install RLGym via `pip install rlgym`. If you're here for Rocket League, you can use `pip install rlgym[rl-rlviser]` instead to get the RLGym API as well as the Rocket League / Sim submodules and [rlviser](https://github.com/VirxEC/rlviser) support.
|
|
11
|
+
2. If you would like to use a GPU install [PyTorch with CUDA](https://pytorch.org/get-started/locally/)
|
|
12
|
+
3. Install rlgym-learn via `pip install rlgym-learn`
|
|
13
|
+
3. Install this project via `pip install rlgym-learn-algos`
|
|
14
|
+
4. If pip installing fails at first, install Rust by following the instructions [here](https://rustup.rs/)
|
|
15
|
+
|
|
16
|
+
## Usage
|
|
17
|
+
See the [RLGym website](https://rlgym.org/RLGym%20Learn/introduction/) for complete documentation and demonstration of functionality [COMING SOON]. For now, you can take a look at `quick_start_guide.py` and `speed_test.py` in the rlgym-learn repo to get a sense of what's going on.
|
|
18
|
+
|
|
19
|
+
## Credits
|
|
20
|
+
This code was separated out from rlgym-learn, which itself was created using rlgym-ppo as a base. The following files were largely written by Matthew Allen, the creator of rlgym-ppo:
|
|
21
|
+
ppo/basic_critic.py
|
|
22
|
+
ppo/continuous_actor.py
|
|
23
|
+
ppo/critic.py
|
|
24
|
+
ppo/discrete_actor.py
|
|
25
|
+
ppo/multi_discrete_actor.py
|
|
26
|
+
ppo/experience_buffer.py
|
|
27
|
+
util/*
|
|
28
|
+
|
|
29
|
+
In general his support for this project has allowed it to become what it is today.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["maturin>=1.7,<2.0"]
|
|
3
|
+
build-backend = "maturin"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "rlgym-learn-algos"
|
|
7
|
+
requires-python = ">=3.8,<3.13"
|
|
8
|
+
classifiers = [
|
|
9
|
+
"Programming Language :: Rust",
|
|
10
|
+
"Programming Language :: Python :: Implementation :: CPython",
|
|
11
|
+
]
|
|
12
|
+
dynamic = ["version"]
|
|
13
|
+
[tool.maturin]
|
|
14
|
+
features = ["pyo3/extension-module"]
|