{"id":29015441,"url":"https://github.com/gpuopen-librariesandsdks/schola","last_synced_at":"2025-06-25T21:07:19.499Z","repository":{"id":285593453,"uuid":"926529768","full_name":"GPUOpen-LibrariesAndSDKs/Schola","owner":"GPUOpen-LibrariesAndSDKs","description":"Schola is a plugin for enabling Reinforcement Learning (RL) in Unreal Engine. It provides tools to help developers create environments, define agents, and connect to python-based RL frameworks such as OpenAI Gym, RLlib or Stable Baselines 3 for training agents with RL.","archived":false,"fork":false,"pushed_at":"2025-05-12T15:01:19.000Z","size":69547,"stargazers_count":37,"open_issues_count":0,"forks_count":6,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-05-12T16:24:32.989Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://gpuopen.com/schola/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GPUOpen-LibrariesAndSDKs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-02-03T12:23:14.000Z","updated_at":"2025-05-12T15:01:16.000Z","dependencies_parsed_at":"2025-04-01T17:02:07.626Z","dependency_job_id":null,"html_url":"https://github.com/GPUOpen-LibrariesAndSDKs/Schola","commit_stats":null,"previous_names":["gpuopen-librariesandsdks/schola"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/GPUOpen-LibrariesAndSDKs/Schola","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GPUOpen-LibrariesAndSDKs%2FSchola","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GPUOpen-LibrariesAndSDKs%2FSchola/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GPUOpen-LibrariesAndSDKs%2FSchola/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GPUOpen-LibrariesAndSDKs%2FSchola/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GPUOpen-LibrariesAndSDKs","download_url":"https://codeload.github.com/GPUOpen-LibrariesAndSDKs/Schola/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GPUOpen-LibrariesAndSDKs%2FSchola/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261953214,"owners_count":23235457,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2025-06-25T21:07:11.176Z","updated_at":"2025-06-25T21:07:19.487Z","avatar_url":"https://github.com/GPUOpen-LibrariesAndSDKs.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"﻿# Schola\nThe Schola project is an effort to build a toolkit/plugin for controlling Objects in Unreal with Reinforcement Learning. It provides tools to help the user create Environments, define Agents, connect to python based RL Frameworks (e.g. Gym, RLLib or Stable Baselines 3), and power NPCs with RL during games.\n\n## Getting Started\n\n### Install Unreal Engine\n\nRelease 1.0 of this this project is designed for Unreal Engine 5.4 which is available for [Download](https://www.unrealengine.com/en-US/download) and is tested on 5.4.3 and 5.4.4. Release 1.1 supports Unreal Engine 5.5 (It is not compatible with Unreal Engine 5.4).\n\n\n\u003e **Important for Visual Studio Users**\n\u003e Only MSVC v143 Build Tools should be selected during install including other build tools will cause linking errors. Sepcifically, use `MSVC14.X` where `X\u003e34` from Visual Studio 2022, and `Windows 10.0.22621.0 SDK` to avoid linking errors\n\n### Installing Schola Into Your Project\nTo use schola in an existing Unreal Engine Project  copy this repository to the `/Plugins` folder of your project, and pip install the schola python package in `/Resources/python`\n\n### Dependencies\n\n#### Python\n\nSee `setup.py` for python dependencies. Installing schola via pip will automatically install all python dependencies.\n\n#### C++\n\nAll C++ dependencies for using Schola are bundled with the plugin under `/Source/ThirdParty`.\n\n## Build and Test\n\n### Building Third Party Dependencies\n\nThird party dependencies, specifically gRPC and Protobuf can be built using `Schola\\Plugins\\Schola\\Resources\\Build\\windows_dependencies.bat` or `Schola\\Plugins\\Schola\\Resources\\Build\\linux_dependencies.sh` depending on your OS. This will update the plugin ThirdParty folder to include copies of the dependencies including .lib/.a files, and copy protoc, and relevant plugins to the tools directory.\n\n### Generating gRPC/Protobuf Code\n\nTo generate code for gRPC and Protobuf run `/proto/compile.py`. This will generate `*.pb.cc`, `*.pb.h` and `*.pb.py` files to the correct folders as well as fix several bugs in the default generator (e.g. ignore warnings in C++ code, and fix relative imports for python)\n\n### Generating Documentation\n\nDocumentation for Schola is build using a combination of Doxygen + Sphinx + Breathe.\n\n1. Install Doxygen from [the website](https://www.doxygen.nl/) \n2. Install sphinx, breathe, and the Read The Docs theme for sphinx using pip `pip install sphinx breathe sphinx_rtd_theme sphinx-tabs sphinx-copybutton`\n3. Generate xml to `/Docs/Doxygen/xml` using the Doxyfile in `/Docs/Doxygen`\n4. From the `Docs/Sphinx` folder run `breathe-apidoc -o API/Unreal ../Doxygen/xml`\n5. Run sphinx-build or make to generate the unified docs.\n\n## Contributing\n\n### Unreal Coding Style\n\nAll unreal code with be styled following the Unreal Style Guide in the [Unreal Documentation](https://docs.unrealengine.com/4.27/en-US/ProductionPipelines/DevelopmentSetup/CodingStandard/).\n\nOne potential auto-formatter is the [Clang Formatter](https://github.com/TensorWorks/UE-Clang-Format) which has visual studio support.\n\n#### Comments\n\nComments are based on doxygen /** style to match closely with javadoc (which Unreal uses) but support handy visual studio features such as comment previews.\nTo enable autogenerated doxygen stubs go to Tools -\u003e Options -\u003e Text Editor -\u003e C/C++ -\u003e Code Style -\u003e General and change the option from XML to Doxygen (/**).\nThis will enable autogeneration of stubs with ctrl + /, or whenever you type /\\*\\* in visual studio.\n\n### Python Coding Style\n\nAll python code will be styled( and formatted) following the [Black style guide](https://black.readthedocs.io/en/stable/).\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) as well as pep.\n\nBlack has an automatic formatter as well as Visual Studio support.\n\n#### Comments\n\nDocstrings in python are in [numpydoc](https://numpydoc.readthedocs.io/en/latest/format.html) style and can use any rst directives supported by sphinx. Inherited functions and members can be left undocumented if the implementation doesn't require any additonal details to explain.\n\n### Testing\n\nTesting is implemented through pytests in the ScholaExamples repository. These tests build a fresh copy of this project before running unit tests on Python + Unreal. This tests whether all examples run with each framework and are functional based on the API.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgpuopen-librariesandsdks%2Fschola","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgpuopen-librariesandsdks%2Fschola","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgpuopen-librariesandsdks%2Fschola/lists"}