- Schola Documentation
- Examples
- API Documentation
- Overview
- Python API
- Generated (gRPC)
- C++ API (Unreal)
- Classes
- Overview
- Class AGymConnectorManager
- Class ConstPointVisitor
- Class ConstSpaceVisitor
- Template Class ExchangeRPCWorker
- Class FCPUModelWrapper
- Class FCPURuntimeWrapper
- Class FGPUModelWrapper
- Class FGPURuntimeWrapper
- Class FSource/Schola/Editor/Module
- Class FSource/Schola/Imitation/Module
- Class FSource/Schola/InferenceUtils/Module
- Class FSource/Schola/Interactors/Module
- Class FScholaModule
- Class FSource/Schola/NNE/Module
- Class FSource/Schola/Protobuf/Module
- Class FSource/Schola/Training/Module
- Class IAgent
- Class IBaseImitationScholaEnvironment
- Class IBaseScholaEnvironment
- Template Class IConsumerBackend
- Template Class IExchangeBackend
- Class IGymConnector
- Class IImitationScholaEnvironment
- Class IModelInstanceInterface
- Class IModelInterface
- Class IMultiAgentImitationScholaEnvironment
- Class IMultiAgentScholaEnvironment
- Class IPolicy
- Template Class IProducerBackend
- Class IProtobufBackend
- Class IRuntimeInterface
- Class IScholaActuator
- Class IScholaEnvironment
- Class IScholaSensor
- Class ISingleAgentImitationScholaEnvironment
- Class ISingleAgentScholaEnvironment
- Class IStepper
- Class PointAllocator
- Class PointVisitor
- Template Class ProducerRPCWorker
- Class ProtobufPointDeserializer
- Class ProtobufPointSerializer
- Class ProtobufSpaceDeserializer
- Class ProtobufSpaceSerializer
- Template Class SpaceTransmuter
- Class SpaceVisitor
- Template Class TCallData
- Template Class TConsumerRPCBackend
- Template Class TConsumerRPCWorker
- Template Class TExchangeCallData
- Template Class TExchangeRPCBackend
- Template Class TImitationScholaEnvironment
- Template Class TProducerRPCBackend
- Template Class TRPCBackend
- Template Class TScholaEnvironment
- Class UAbstractGymConnector
- Class UAbstractImitationConnector
- Class UActionDebugLibrary
- Class UAgent
- Class UBaseImitationScholaEnvironment
- Class UBaseScholaEnvironment
- Class UBlueprintPolicy
- Class UBoxPointBlueprintLibrary
- Class UBoxSpaceBlueprintLibrary
- Class UCameraSensor
- Class UCommunicationManager
- Class UDictPointBlueprintLibrary
- Class UDictSpaceBlueprintLibrary
- Class UDiscretePointBlueprintLibrary
- Class UDiscreteSpaceBlueprintLibrary
- Class UExternalGymConnector
- Class UGymConnector
- Class ULaunchableScriptFunctionLibrary
- Class UManualGymConnector
- Class UMovementInputActuator
- Class UMultiAgentImitationScholaEnvironment
- Class UMultiAgentScholaEnvironment
- Class UMultiBinaryPointBlueprintLibrary
- Class UMultiBinarySpaceBlueprintLibrary
- Class UMultiDiscretePointBlueprintLibrary
- Class UMultiDiscreteSpaceBlueprintLibrary
- Class UNNEPolicy
- Class UPipelinedStepper
- Class UPointBlueprintLibrary
- Class UPolicy
- Class URPCGymConnector
- Class URPCImitationConnector
- Class URayCastSensor
- Class URotationActuator
- Class UScholaActuator
- Class UScholaSensor
- Class USimpleStepper
- Class USingleAgentImitationScholaEnvironment
- Class USingleAgentScholaEnvironment
- Class USpaceBlueprintLibrary
- Class UStepper
- Class UTeleportActuator
- Structs
- Overview
- Struct FAgentState
- Struct FBoxPoint
- Struct FBoxSpace
- Struct FBoxSpaceDimension
- Struct FCustomTrainingSettings
- Struct FDictPoint
- Struct FDictSpace
- Struct FDiscretePoint
- Struct FDiscreteSpace
- Struct FEnvReset
- Struct FEnvStep
- Struct FEnvironmentDefinition
- Struct FEnvironmentState
- Struct FExternalGymConnectorSettings
- Struct FImitationAgentState
- Struct FImitationEnvironmentState
- Struct FImitationState
- Struct FImitationTrainingState
- Struct FInitialAgentState
- Struct FInitialEnvironmentState
- Struct FInitialState
- Struct FInteractionDefinition
- Struct FLaunchableScript
- Struct FLaunchableScriptRunnable
- Struct FMultiBinaryPoint
- Struct FMultiBinarySpace
- Struct FMultiDiscretePoint
- Struct FMultiDiscreteSpace
- Struct FNNEBindingCreator
- Struct FNNEBoxBuffer
- Struct FNNEBufferAllocator
- Struct FNNEBufferVisitor
- Struct FNNEDictBuffer
- Struct FNNEDiscreteBuffer
- Struct FNNEMultiBinaryBuffer
- Struct FNNEMultiDiscreteBuffer
- Struct FNNEPointBuffer
- Struct FNNEPointCreator
- Struct FNNEPointToBufferConverter
- Struct FNNEStateBuffer
- Struct FPoint
- Struct FRLlibAPPOSettings
- Struct FRLlibCheckpointSettings
- Struct FRLlibIMPALASettings
- Struct FRLlibLoggingSettings
- Struct FRLlibNetworkArchSettings
- Struct FRLlibPPOSettings
- Struct FRLlibResourceSettings
- Struct FRLlibResumeSettings
- Struct FRLlibTrainingSettings
- Struct FRPCServerSettings
- Struct FSB3CheckpointSettings
- Struct FSB3LoggingSettings
- Struct FSB3NetworkArchSettings
- Struct FSB3PPOSettings
- Struct FSB3ResumeSettings
- Struct FSB3SACSettings
- Struct FSB3TrainingSettings
- Struct FScriptArgBuilder
- Struct FScriptSettings
- Struct FSpace
- Struct FStartRequest
- Struct FTrainingDefinition
- Struct FTrainingReset
- Struct FTrainingSettings
- Struct FTrainingState
- Struct FTrainingStateUpdate
- Struct FTrainingStep
- Template Struct TBaseStructure< FPoint >
- Template Struct TBaseStructure< FSpace >
- UPipelinedStepper::FPipelinedStepperFrame
-
Static vs Dynamic Environments
Static vs Dynamic Environments
Schola provides two types of environments for reinforcement learning: Static and Dynamic. These environments differ in how agents and trainers are managed, with the Static Environment
Static Environments
Static environments are designed for scenarios where the agents and trainers are predefined and do not change dynamically during the simulation. These environments are more rigid and are suitable for use cases where the structure of the environment remains constant. To create a static environment, you can use the AStaticScholaEnvironment class, which is a subclass of AbstractScholaEnvironment.
Static Environment Differences
- Agent Registration: Agents are registered using pointers to AActor’s controlled by
AbstractTrainer. This method is implemented by child classes.
Dynamic Environments
Dynamic environments are designed for scenarios where agents and trainers can be created, modified, or removed during the simulation. These environments are more flexible and are suitable for use cases where the structure of the environment evolves over time. An example would be a zombie game where a variable number of zombies are spawned throughout the game. To create a dynamic environment, you can use the DynamicScholaEnvironment class, which is a subclass of AbstractScholaEnvironment.
Dynamic Environment Differences
-
Agent Registration: Agents are registered using a pair of UClass Objects, one a child of
AbstractTrainerand the other a child of Pawn (Object Reference). This method can be overridden in Blueprints. -
Agent Spawning: Agents can be spawned using the
SpawnAgent()method. This allows for more complex and adaptive environments where agents can be added or removed based on the simulation’s needs.