← Lab

Train a first-person visual policy

CPU · Python 3.10.12 · 287.67 s · 2026-10-22 23:25:36 UTC+8

Saved run results

score0.5903348049521453
steps1024
epochs2
checkpoints2
previewlearned-policy.gif
Dependency cache ready: /mnt/workspace/hands-on-modern-rl-notebooks/hands-on-modern-rl-experiment10-minestudio-b44597457f59.ready
Repository: /runs/minecraft-en-diskcache/workspaces/minecraft
Experiment runtime: /runs/minecraft-en-diskcache/workspaces/minecraft/modelscope-space/hands-on-modern-rl-experiment10-minestudio
Available tasks:
  mine-dirt            Mine Dirt · Visual PPO · MineStudio/mine-dirt
  collect-wood         Collect Wood · Visual PPO · MineStudio/collect-wood
  hunt-sheep           Hunt a Sheep · Visual PPO · MineStudio/hunt-sheep
  combat-zombie        Combat a Zombie · Visual PPO · MineStudio/combat-zombie

Selected: Mine Dirt · Visual PPO
Algorithm: CNN PPO
Epoch schedule: 2 epochs × 512 steps = 1,024 total steps
Every epoch is evaluated and saved as a separately selectable model.
Device: CPU
Starting the same training generator used by the live Studio...

Preparing persistent MineStudio engine cache at /mnt/workspace/hands-on-modern-rl/minestudio
Temurin Java 8 ready: /mnt/workspace/hands-on-modern-rl/temurin-jre8/jdk8u504-b01-jre/bin/java
MineStudio engine source: https://huggingface.co
MineStudio engine cache ready: /mnt/workspace/hands-on-modern-rl/minestudio/engine/build/libs/mcprec-6.13.jar
Starting the Minecraft renderer
Launching the MineStudio Java/Forge world. The first world connection normally takes several minutes; this run remains active while the controls stay locked.
INFO: Starting Minecraft process with device: cpu
CommandsCallback(commands=['/give @s minecraft:stone_shovel', '/execute as @p at @s run fill ~1 ~ ~1 ~4 ~2 ~4 minecraft:dirt'])
RewardsCallback()
CommandsCallback(commands=['/give @s minecraft:stone_shovel', '/execute as @p at @s run fill ~1 ~ ~1 ~4 ~2 ~4 minecraft:dirt'])
RewardsCallback()
CommandsCallback(commands=['/give @s minecraft:stone_shovel', '/execute as @p at @s run fill ~1 ~ ~1 ~4 ~2 ~4 minecraft:dirt'])
RewardsCallback()
Minecraft PPO update · step=512
device=cpu  fps=—
episode_reward_mean=0.0000  value_loss=0.03496
policy_gradient_loss=-0.01262
SAVE epoch=1/2 model=policy.zip
CommandsCallback(commands=['/give @s minecraft:stone_shovel', '/execute as @p at @s run fill ~1 ~ ~1 ~4 ~2 ~4 minecraft:dirt'])
RewardsCallback()
CommandsCallback(commands=['/give @s minecraft:stone_shovel', '/execute as @p at @s run fill ~1 ~ ~1 ~4 ~2 ~4 minecraft:dirt'])
RewardsCallback()
Minecraft PPO update · step=1,024
device=cpu  fps=—
episode_reward_mean=0.0000  value_loss=0.00154
policy_gradient_loss=-0.00418
SAVE epoch=2/2 model=policy.zip
Training is complete. Reusing one fresh Minecraft world to replay every saved policy.
INFO: Starting Minecraft process with device: cpu
CommandsCallback(commands=['/give @s minecraft:stone_shovel', '/execute as @p at @s run fill ~1 ~ ~1 ~4 ~2 ~4 minecraft:dirt'])
RewardsCallback()
REPLAY epoch=1/2 model=policy.zip return=0.238
CommandsCallback(commands=['/give @s minecraft:stone_shovel', '/execute as @p at @s run fill ~1 ~ ~1 ~4 ~2 ~4 minecraft:dirt'])
RewardsCallback()
REPLAY epoch=2/2 model=policy.zip return=0.590
Saved 2 independently selectable Minecraft policies and replays

Final phase: complete
Final score: 0.0
Saved 2 selectable epoch models in this run.
Model index: /runs/minecraft-en-diskcache/workspaces/minecraft/modelscope-space/hands-on-modern-rl-experiment10-minestudio/artifacts/notebook-models.json
Gym has been unmaintained since 2022 and does not support NumPy 2.0 amongst other critical functionality.
Please upgrade to Gymnasium, the maintained drop-in replacement of Gym, or contact the authors of your software and request that they upgrade.
Users of this version of Gym should be able to simply replace 'import gym' with 'import gymnasium as gym' in the vast majority of cases.
See the migration guide at https://gymnasium.farama.org/introduction/migration_guide/ for additional information.
ERROR:minestudio.simulator.minerl.env.malmo.instance.dcb778:[15:26:02] [Render thread/WARN]: ERROR : Couldn't load Narrator library : Unable to load library 'fliteWrapper': Can't obtain InputStream for linux-x86-64/libfliteWrapper.so
ERROR:minestudio.simulator.minerl.env.malmo.instance.dcb778:[15:26:06] [Realms Notification Availability checker #1/INFO]: Could not authorize you against Realms server: java.lang.RuntimeException: Failed to parse into SignedJWT: null
ERROR:minestudio.simulator.minerl.env.malmo.instance.dcb778:[15:26:12] [Worker-Main-12/ERROR]: Using missing texture, unable to load minecraft:optifine/ctm/default/empty.png : java.io.FileNotFoundException: minecraft:optifine/ctm/default/empty.png
ERROR:minestudio.simulator.minerl.env.malmo.instance.dcb778:[15:26:12] [Render thread/ERROR]: Error starting SoundSystem. Turning off sounds & music
ERROR:minestudio.simulator.minerl.env.malmo.instance.dcb778:java.lang.IllegalStateException: Failed to open OpenAL device
WARNING:minestudio.simulator.minerl.env.malmo.instance.dcb778:[15:26:12] [Render thread/WARN]: [OptiFine] Missing CTM sprite: minecraft:optifine/ctm/default/empty
WARNING:minestudio.simulator.minerl.env.malmo.instance.dcb778:[15:26:15] [Render thread/WARN]: Ambiguity between arguments [teleport, destination] and [teleport, targets] with inputs: [Player, 0123, @e, dd12be42-52a9-4a91-a8a1-11c01849e498]
WARNING:minestudio.simulator.minerl.env.malmo.instance.dcb778:[15:26:15] [Render thread/WARN]: Ambiguity between arguments [teleport, location] and [teleport, destination] with inputs: [0.1 -0.5 .9, 0 0 0]
WARNING:minestudio.simulator.minerl.env.malmo.instance.dcb778:[15:26:15] [Render thread/WARN]: Ambiguity between arguments [teleport, location] and [teleport, targets] with inputs: [0.1 -0.5 .9, 0 0 0]
WARNING:minestudio.simulator.minerl.env.malmo.instance.dcb778:[15:26:15] [Render thread/WARN]: Ambiguity between arguments [teleport, targets] and [teleport, destination] with inputs: [Player, 0123, dd12be42-52a9-4a91-a8a1-11c01849e498]
WARNING:minestudio.simulator.minerl.env.malmo.instance.dcb778:[15:26:15] [Render thread/WARN]: Ambiguity between arguments [teleport, targets, location] and [teleport, targets, destination] with inputs: [0.1 -0.5 .9, 0 0 0]
WARNING:minestudio.simulator.minerl.env.malmo.instance.dcb778:[15:26:35] [Render thread/WARN]: Failed to load texture: minecraft:optifine/ctm/default/empty.png
ERROR:minestudio.simulator.minerl.env.malmo.instance.dcb778:java.io.FileNotFoundException: minecraft:optifine/ctm/default/empty.png
WARNING:minestudio.simulator.minerl.env.malmo.instance.dcb778:[15:26:58] [Render thread/WARN]: Ambiguity between arguments [teleport, destination] and [teleport, targets] with inputs: [Player, 0123, @e, dd12be42-52a9-4a91-a8a1-11c01849e498]
WARNING:minestudio.simulator.minerl.env.malmo.instance.dcb778:[15:26:58] [Render thread/WARN]: Ambiguity between arguments [teleport, location] and [teleport, destination] with inputs: [0.1 -0.5 .9, 0 0 0]
WARNING:minestudio.simulator.minerl.env.malmo.instance.dcb778:[15:26:58] [Render thread/WARN]: Ambiguity between arguments [teleport, location] and [teleport, targets] with inputs: [0.1 -0.5 .9, 0 0 0]
WARNING:minestudio.simulator.minerl.env.malmo.instance.dcb778:[15:26:58] [Render thread/WARN]: Ambiguity between arguments [teleport, targets] and [teleport, destination] with inputs: [Player, 0123, dd12be42-52a9-4a91-a8a1-11c01849e498]
WARNING:minestudio.simulator.minerl.env.malmo.instance.dcb778:[15:26:58] [Render thread/WARN]: Ambiguity between arguments [teleport, targets, location] and [teleport, targets, destination] with inputs: [0.1 -0.5 .9, 0 0 0]
WARNING:minestudio.simulator.minerl.env.malmo.instance.dcb778:[15:27:10] [Render thread/WARN]: Failed to load texture: minecraft:optifine/ctm/default/empty.png
ERROR:minestudio.simulator.minerl.env.malmo.instance.dcb778:java.io.FileNotFoundException: minecraft:optifine/ctm/default/empty.png
WARNING:minestudio.simulator.minerl.env.malmo.instance.dcb778:[15:27:24] [Render thread/WARN]: Ambiguity between arguments [teleport, destination] and [teleport, targets] with inputs: [Player, 0123, @e, dd12be42-52a9-4a91-a8a1-11c01849e498]
WARNING:minestudio.simulator.minerl.env.malmo.instance.dcb778:[15:27:24] [Render thread/WARN]: Ambiguity between arguments [teleport, location] and [teleport, destination] with inputs: [0.1 -0.5 .9, 0 0 0]
WARNING:minestudio.simulator.minerl.env.malmo.instance.dcb778:[15:27:24] [Render thread/WARN]: Ambiguity between arguments [teleport, location] and [teleport, targets] with inputs: [0.1 -0.5 .9, 0 0 0]
WARNING:minestudio.simulator.minerl.env.malmo.instance.dcb778:[15:27:24] [Render thread/WARN]: Ambiguity between arguments [teleport, targets] and [teleport, destination] with inputs: [Player, 0123, dd12be42-52a9-4a91-a8a1-11c01849e498]
WARNING:minestudio.simulator.minerl.env.malmo.instance.dcb778:[15:27:24] [Render thread/WARN]: Ambiguity between arguments [teleport, targets, location] and [teleport, targets, destination] with inputs: [0.1 -0.5 .9, 0 0 0]
WARNING:minestudio.simulator.minerl.env.malmo.instance.dcb778:[15:27:35] [Render thread/WARN]: Failed to load texture: minecraft:optifine/ctm/default/empty.png
ERROR:minestudio.simulator.minerl.env.malmo.instance.dcb778:java.io.FileNotFoundException: minecraft:optifine/ctm/default/empty.png
WARNING:minestudio.simulator.minerl.env.malmo.instance.dcb778:[15:27:52] [Render thread/WARN]: Ambiguity between arguments [teleport, destination] and [teleport, targets] with inputs: [Player, 0123, @e, dd12be42-52a9-4a91-a8a1-11c01849e498]
WARNING:minestudio.simulator.minerl.env.malmo.instance.dcb778:[15:27:52] [Render thread/WARN]: Ambiguity between arguments [teleport, location] and [teleport, destination] with inputs: [0.1 -0.5 .9, 0 0 0]
WARNING:minestudio.simulator.minerl.env.malmo.instance.dcb778:[15:27:52] [Render thread/WARN]: Ambiguity between arguments [teleport, location] and [teleport, targets] with inputs: [0.1 -0.5 .9, 0 0 0]
WARNING:minestudio.simulator.minerl.env.malmo.instance.dcb778:[15:27:52] [Render thread/WARN]: Ambiguity between arguments [teleport, targets] and [teleport, destination] with inputs: [Player, 0123, dd12be42-52a9-4a91-a8a1-11c01849e498]
WARNING:minestudio.simulator.minerl.env.malmo.instance.dcb778:[15:27:52] [Render thread/WARN]: Ambiguity between arguments [teleport, targets, location] and [teleport, targets, destination] with inputs: [0.1 -0.5 .9, 0 0 0]
WARNING:minestudio.simulator.minerl.env.malmo.instance.dcb778:[15:28:04] [Render thread/WARN]: Failed to load texture: minecraft:optifine/ctm/default/empty.png
ERROR:minestudio.simulator.minerl.env.malmo.instance.dcb778:java.io.FileNotFoundException: minecraft:optifine/ctm/default/empty.png
WARNING:minestudio.simulator.minerl.env.malmo.instance.dcb778:[15:28:19] [Render thread/WARN]: Ambiguity between arguments [teleport, destination] and [teleport, targets] with inputs: [Player, 0123, @e, dd12be42-52a9-4a91-a8a1-11c01849e498]
WARNING:minestudio.simulator.minerl.env.malmo.instance.dcb778:[15:28:19] [Render thread/WARN]: Ambiguity between arguments [teleport, location] and [teleport, destination] with inputs: [0.1 -0.5 .9, 0 0 0]
WARNING:minestudio.simulator.minerl.env.malmo.instance.dcb778:[15:28:19] [Render thread/WARN]: Ambiguity between arguments [teleport, location] and [teleport, targets] with inputs: [0.1 -0.5 .9, 0 0 0]
WARNING:minestudio.simulator.minerl.env.malmo.instance.dcb778:[15:28:19] [Render thread/WARN]: Ambiguity between arguments [teleport, targets] and [teleport, destination] with inputs: [Player, 0123, dd12be42-52a9-4a91-a8a1-11c01849e498]
WARNING:minestudio.simulator.minerl.env.malmo.instance.dcb778:[15:28:19] [Render thread/WARN]: Ambiguity between arguments [teleport, targets, location] and [teleport, targets, destination] with inputs: [0.1 -0.5 .9, 0 0 0]
WARNING:minestudio.simulator.minerl.env.malmo.instance.dcb778:[15:28:30] [Render thread/WARN]: Failed to load texture: minecraft:optifine/ctm/default/empty.png
ERROR:minestudio.simulator.minerl.env.malmo.instance.dcb778:java.io.FileNotFoundException: minecraft:optifine/ctm/default/empty.png
ERROR:minestudio.simulator.minerl.env.malmo.instance.128321:[15:28:59] [Render thread/WARN]: ERROR : Couldn't load Narrator library : Unable to load library 'fliteWrapper': Can't obtain InputStream for linux-x86-64/libfliteWrapper.so
ERROR:minestudio.simulator.minerl.env.malmo.instance.128321:[15:29:02] [Realms Notification Availability checker #1/INFO]: Could not authorize you against Realms server: java.lang.RuntimeException: Failed to parse into SignedJWT: null
ERROR:minestudio.simulator.minerl.env.malmo.instance.128321:[15:29:08] [Worker-Main-9/ERROR]: Using missing texture, unable to load minecraft:optifine/ctm/default/empty.png : java.io.FileNotFoundException: minecraft:optifine/ctm/default/empty.png
ERROR:minestudio.simulator.minerl.env.malmo.instance.128321:[15:29:08] [Render thread/ERROR]: Error starting SoundSystem. Turning off sounds & music
ERROR:minestudio.simulator.minerl.env.malmo.instance.128321:java.lang.IllegalStateException: Failed to open OpenAL device
WARNING:minestudio.simulator.minerl.env.malmo.instance.128321:[15:29:08] [Render thread/WARN]: [OptiFine] Missing CTM sprite: minecraft:optifine/ctm/default/empty
WARNING:minestudio.simulator.minerl.env.malmo.instance.128321:[15:29:11] [Render thread/WARN]: Ambiguity between arguments [teleport, destination] and [teleport, targets] with inputs: [Player, 0123, @e, dd12be42-52a9-4a91-a8a1-11c01849e498]
WARNING:minestudio.simulator.minerl.env.malmo.instance.128321:[15:29:11] [Render thread/WARN]: Ambiguity between arguments [teleport, location] and [teleport, destination] with inputs: [0.1 -0.5 .9, 0 0 0]
WARNING:minestudio.simulator.minerl.env.malmo.instance.128321:[15:29:11] [Render thread/WARN]: Ambiguity between arguments [teleport, location] and [teleport, targets] with inputs: [0.1 -0.5 .9, 0 0 0]
WARNING:minestudio.simulator.minerl.env.malmo.instance.128321:[15:29:11] [Render thread/WARN]: Ambiguity between arguments [teleport, targets] and [teleport, destination] with inputs: [Player, 0123, dd12be42-52a9-4a91-a8a1-11c01849e498]
WARNING:minestudio.simulator.minerl.env.malmo.instance.128321:[15:29:11] [Render thread/WARN]: Ambiguity between arguments [teleport, targets, location] and [teleport, targets, destination] with inputs: [0.1 -0.5 .9, 0 0 0]
WARNING:minestudio.simulator.minerl.env.malmo.instance.128321:[15:29:29] [Render thread/WARN]: Failed to load texture: minecraft:optifine/ctm/default/empty.png
ERROR:minestudio.simulator.minerl.env.malmo.instance.128321:java.io.FileNotFoundException: minecraft:optifine/ctm/default/empty.png
WARNING:minestudio.simulator.minerl.env.malmo.instance.128321:[15:29:52] [Render thread/WARN]: Ambiguity between arguments [teleport, destination] and [teleport, targets] with inputs: [Player, 0123, @e, dd12be42-52a9-4a91-a8a1-11c01849e498]
WARNING:minestudio.simulator.minerl.env.malmo.instance.128321:[15:29:52] [Render thread/WARN]: Ambiguity between arguments [teleport, location] and [teleport, destination] with inputs: [0.1 -0.5 .9, 0 0 0]
WARNING:minestudio.simulator.minerl.env.malmo.instance.128321:[15:29:52] [Render thread/WARN]: Ambiguity between arguments [teleport, location] and [teleport, targets] with inputs: [0.1 -0.5 .9, 0 0 0]
WARNING:minestudio.simulator.minerl.env.malmo.instance.128321:[15:29:52] [Render thread/WARN]: Ambiguity between arguments [teleport, targets] and [teleport, destination] with inputs: [Player, 0123, dd12be42-52a9-4a91-a8a1-11c01849e498]
WARNING:minestudio.simulator.minerl.env.malmo.instance.128321:[15:29:52] [Render thread/WARN]: Ambiguity between arguments [teleport, targets, location] and [teleport, targets, destination] with inputs: [0.1 -0.5 .9, 0 0 0]
WARNING:minestudio.simulator.minerl.env.malmo.instance.128321:[15:30:03] [Render thread/WARN]: Failed to load texture: minecraft:optifine/ctm/default/empty.png
ERROR:minestudio.simulator.minerl.env.malmo.instance.128321:java.io.FileNotFoundException: minecraft:optifine/ctm/default/empty.png
Run the inference cell below to choose an epoch model and visualize its exact learned policy.
Experiment output
The newest epoch is selected by default. Choose another saved model, then click Visualize selected policy.
VBox(children=(Dropdown(description='Epoch model:', layout=Layout(width='95%'), options=(('Epoch 2/2 · 1,024 s…
{
  "score": 0.5903348049521453,
  "steps": 1024,
  "epochs": 2,
  "checkpoints": 2,
  "preview": "learned-policy.gif"
}
Experiment output
metrics.json
{
  "score": 0.5903348049521453,
  "steps": 1024,
  "epochs": 2,
  "checkpoints": 2,
  "preview": "learned-policy.gif"
}