Skip to content

Commit

Permalink
Refactor and start improving server
Browse files Browse the repository at this point in the history
  • Loading branch information
phisn committed May 14, 2024
1 parent 46eb517 commit 7d57601
Show file tree
Hide file tree
Showing 35 changed files with 284 additions and 92 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"scripts": {
"postinstall": "yarn workspace server postinstall",
"build": "turbo run build --no-daemon",
"dev": "turbo run dev --no-daemon",
"dev": "turbo run dev --no-daemon --concurrency 20",
"lint": "turbo run lint --no-daemon",
"format": "prettier --write \"**/*.{ts,tsx,md}\"",
"preview": "turbo run preview --no-daemon"
Expand Down
13 changes: 13 additions & 0 deletions packages-dev/eslint-config-custom/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,19 @@ module.exports = {

eqeqeq: "error",
"no-var": "error",

"@typescript-eslint/no-unused-vars": [
"error",
{
"args": "all",
"argsIgnorePattern": "^_",
"caughtErrors": "all",
"caughtErrorsIgnorePattern": "^_",
"destructuredArrayIgnorePattern": "^_",
"varsIgnorePattern": "^_",
"ignoreRestSiblings": true
}
]
},
ignorePatterns: ["*.cjs", "vite.config.ts", "rollup.config.mjs"],
}
6 changes: 3 additions & 3 deletions packages/learning-gym/dreamerv3/dreamerv3/configs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ defaults:
prio: { exponent: 0.8, maxfrac: 0.5, initial: inf, zero_on_sample: True }
priosignal: model
recexp: 1.0
chunksize: 1024
chunksize: 4096
save_wait: False

jax:
Expand Down Expand Up @@ -196,7 +196,7 @@ defaults:
symlog: True,
outer: True,
kernel: 5,
minres: 6,
minres: 4,
}
dec:
spaces: ".*"
Expand All @@ -215,7 +215,7 @@ defaults:
winit: normal,
outer: True,
kernel: 5,
minres: 6,
minres: 4,
block_space: 8,
block_fans: False,
block_norm: False,
Expand Down
12 changes: 6 additions & 6 deletions packages/learning-gym/dreamerv3/polyburn_env.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ def __init__(self, script_path):

self.observation_space = spaces.Dict({
"image": spaces.Box(low=0, high=255, shape=(size, size, 3), dtype=np.uint8),
"features": spaces.Box(low=-1000, high=1000, shape=(4,), dtype=np.float32)
"features": spaces.Box(low=-1000, high=1000, shape=(6,), dtype=np.float32)
})

self.action_space = spaces.Discrete(6)
Expand All @@ -35,10 +35,10 @@ def step(self, action):
self.restart_process()
return self.reset(), 0, True, {}

data = self.process.stdout.read(size*size*3 + 4*4 + 4 + 1)
data = self.process.stdout.read(size*size*3 + 6*4 + 4 + 1)
image = np.frombuffer(data[:size*size*3], dtype=np.uint8).reshape(size, size, 3)
features = np.frombuffer(data[size*size*3:size*size*3+ 4*4], dtype=np.float32)
reward = np.frombuffer(data[size*size*3 + 4*4:size*size*3 + 4*4 + 4], dtype=np.float32)[0]
features = np.frombuffer(data[size*size*3:size*size*3+ 6*4], dtype=np.float32)
reward = np.frombuffer(data[size*size*3 + 6*4:size*size*3 + 6*4 + 4], dtype=np.float32)[0]
done = data[-1] == 1

return { "image": image, "features": features }, reward, done, {}
Expand All @@ -51,7 +51,7 @@ def reset(self):
command = command.encode("utf-8")
self.process.stdin.write(command)
self.process.stdin.flush()
data = self.process.stdout.read(size*size*3 + 4 * 4)
data = self.process.stdout.read(size*size*3 + 6 * 4)
image = np.frombuffer(data[:size*size*3], dtype=np.uint8).reshape(size, size, 3)
features = np.frombuffer(data[size*size*3:], dtype=np.float32)

Expand Down Expand Up @@ -106,6 +106,6 @@ def close(self):
o, r, _, _ = env.step(0)
print(o["features"])

# plt.show()
plt.show()

env.close()
6 changes: 3 additions & 3 deletions packages/learning-gym/dreamerv3/polyburn_runner.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ def main():
config = embodied.Config(dreamerv3.Agent.configs['defaults'])

config = config.update({
**dreamerv3.Agent.configs['size100m'],
'logdir': f'./logdir/polyburn-1',
'run.train_ratio': 32,
**dreamerv3.Agent.configs['size50m'],
'logdir': f'./logdir/polyburn-2',
'run.train_ratio': 16,
})

config = embodied.Flags(config).parse()
Expand Down
2 changes: 1 addition & 1 deletion packages/learning-gym/dreamerv3/run.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/bin/bash
while true
do
rm -rf /mnt/c/Users/Phisn/Repos/rocket-game/packages/learning-gym/dreamerv3/logdir/polyburn-1/replay
rm -rf /mnt/c/Users/Phisn/Repos/rocket-game/packages/learning-gym/dreamerv3/logdir/polyburn-2/replay
python polyburn_runner.py
done
39 changes: 29 additions & 10 deletions packages/learning-gym/src/game-environment.ts
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ export class GameEnvironment {
// - distance to flag x
// - distance to flag y
// - flag in capture
this.observationFeatureBuffer = Buffer.alloc(4 * 4)
this.observationFeatureBuffer = Buffer.alloc(4 * 6)

// image (3 channels)
this.observationImageBuffer = Buffer.alloc(
Expand Down Expand Up @@ -122,16 +122,32 @@ export class GameEnvironment {

this.runtime = newRuntime(RAPIER as any, this.world, this.previousGamemode)

if (this.replayProcessed === undefined) {
const replayToFollow =
"CuUmcggAAAAACGaizaTNpGaeZp5momemZqrNqACozaTNpGWeZp4AAAFmomeeZ54AAAVmnmaiZ54AAAFnngAAAWaeZ55mngAABGaeAAACZ54AAAdmIs0kMyuaKTMtZyozLZopzChnKgAozShlIgAAAmYeZx5mHgAAAWYeAAAFZp5momeiZqZnomaeZ6Jmos2kZp5momeiZqJmogAABGeeAAAFZh5mImciZiJnIs0kzCTNJGciZh4AAAFnHgAADM2kzaRmps2kzajMpGeiZp5nnmaeAAABZ54AAAFmngAAWWaiZ6YAqACoZZ5momeeZp5nomaeZqJnngAAAWaeZqJnomaiZ54AAAJmnmeiZp4AAAJmngAACmYeZx4AAANmHmceAAAMZ55mnmaiZ6JmomeiZp5mngAAAmaiZ6IAAAFmomeeZqJnomaiZ55mnmaiZ55nos2kzKRongAAGWaiZ6Jmps2kzagAqGamZ55mngAACGYeAAABZiJnHmceZh5nHgAAAWYeZh5nHmYeAAABZx5mHs0kZh5mImciZh7NJGYiZibNJM0kzSQAKGYmZiZnJs0kZibNJGYiZibNJGcmzCQAKGcmZiaaKWYmACjNJGYiZh4AAAJmHmceZh5mIgAAAWcezSTNKMwkAChnImYiZx5nHgAABmYeAAABZh5nHmYeAAABZx4AADJnnmaeZqJnnmeeAAAHZp5nngAAAWaeZp5nnmaiZ6IAAAJmngAAC2aeZqJnns2kZp5momeeZ55momeiAAAOZp5momeeZqIAAAFnngAAAmaeAAABZ54AAAFmnmaiZ6ZmomaiZ55mos2kzaRmomaezaRmngAAAWaeAAAXZh4AAAdnHgAAAmYeZx4AAAFmHgAAAWYeAABTzaTMpGieZ6JmomaizaTNqM2oZqrNqGaszajNqDOrAKjNqGemZqbNpACozaTNpACoZqbNpGaiAAABZp4AAApmHgAABmYeAAACZx5mHmceZh5mHmciZh5mHmYiZyJmImceZh4AAAFnHmYeZh5nHmYeAAABZx5mHmYezSRmHmYiZyJmImcizSRlHmYiZx5mImciZh5mHmciZiJmImcmZiJmJmceZiJnHmYmZyZmJjMrzSgzK2cmzShmImYeZh4AABJmomeeZqJnnmaeZ6JmnmaeZp4AAAJnnmaeAAABZ55mngAAAmaeZ55mngAA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"
const replayToFollow =
"CuUmcggAAAAACGaizaTNpGaeZp5momemZqrNqACozaTNpGWeZp4AAAFmomeeZ54AAAVmnmaiZ54AAAFnngAAAWaeZ55mngAABGaeAAACZ54AAAdmIs0kMyuaKTMtZyozLZopzChnKgAozShlIgAAAmYeZx5mHgAAAWYeAAAFZp5momeiZqZnomaeZ6Jmos2kZp5momeiZqJmogAABGeeAAAFZh5mImciZiJnIs0kzCTNJGciZh4AAAFnHgAADM2kzaRmps2kzajMpGeiZp5nnmaeAAABZ54AAAFmngAAWWaiZ6YAqACoZZ5momeeZp5nomaeZqJnngAAAWaeZqJnomaiZ54AAAJmnmeiZp4AAAJmngAACmYeZx4AAANmHmceAAAMZ55mnmaiZ6JmomeiZp5mngAAAmaiZ6IAAAFmomeeZqJnomaiZ55mnmaiZ55nos2kzKRongAAGWaiZ6Jmps2kzagAqGamZ55mngAACGYeAAABZiJnHmceZh5nHgAAAWYeZh5nHmYeAAABZx5mHs0kZh5mImciZh7NJGYiZibNJM0kzSQAKGYmZiZnJs0kZibNJGYiZibNJGcmzCQAKGcmZiaaKWYmACjNJGYiZh4AAAJmHmceZh5mIgAAAWcezSTNKMwkAChnImYiZx5nHgAABmYeAAABZh5nHmYeAAABZx4AADJnnmaeZqJnnmeeAAAHZp5nngAAAWaeZp5nnmaiZ6IAAAJmngAAC2aeZqJnns2kZp5momeeZ55momeiAAAOZp5momeeZqIAAAFnngAAAmaeAAABZ54AAAFmnmaiZ6ZmomaiZ55mos2kzaRmomaezaRmngAAAWaeAAAXZh4AAAdnHgAAAmYeZx4AAAFmHgAAAWYeAABTzaTMpGieZ6JmomaizaTNqM2oZqrNqGaszajNqDOrAKjNqGemZqbNpACozaTNpACoZqbNpGaiAAABZp4AAApmHgAABmYeAAACZx5mHmceZh5mHmciZh5mHmYiZyJmImceZh4AAAFnHmYeZh5nHmYeAAABZx5mHmYezSRmHmYiZyJmImcizSRlHmYiZx5mImciZh5mHmciZiJmImcmZiJmJmceZiJnHmYmZyZmJjMrzSgzK2cmzShmImYeZh4AABJmomeeZqJnnmaeZ6JmnmaeZp4AAAJnnmaeAAABZ55mngAAAmaeZ55mngAA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"

this.replayProcessed = processReplayForAgent(
ReplayModel.decode(Buffer.from(replayToFollow, "base64")),
this.runtime,
)
this.replayProcessed = processReplayForAgent(
ReplayModel.decode(Buffer.from(replayToFollow, "base64")),
this.runtime,
)

// skip randomly first levels. dont skip the last level
const skipUntilLevel = Math.floor(
Math.random() * (this.replayProcessed.inputsInLevels.length - 1),
)

for (let i = 0; i < skipUntilLevel; ++i) {
for (const input of this.replayProcessed.inputsInLevels[i]) {
this.runtime.step(input)
}
}

this.replayProcessed.inputsInLevels = this.replayProcessed.inputsInLevels.slice(
skipUntilLevel - 1,
)
this.replayProcessed.positionsInLevels = this.replayProcessed.positionsInLevels.slice(
skipUntilLevel - 1,
)

this.replayTracker = new ReplayFollowTracker(this.runtime, this.replayProcessed)

this.game = new GameAgentWrapper(
Expand Down Expand Up @@ -241,7 +257,7 @@ export class GameEnvironment {
}

prepareFeatureBuffer() {
for (const message of this.capturedCollector) {
for (const _ of this.capturedCollector) {
this.targetFlag = nextFlag(this.runtime, this.rocket)
}

Expand Down Expand Up @@ -271,7 +287,10 @@ export class GameEnvironment {
8,
)

this.observationFeatureBuffer.writeFloatLE(inCapture ? 1 : -1, 12)
this.observationFeatureBuffer.writeFloatLE(dxTarget / 8, 12)
this.observationFeatureBuffer.writeFloatLE(dyTarget / 8, 16)

this.observationFeatureBuffer.writeFloatLE(inCapture ? 1 : -1, 20)
}

generatePng(): Buffer {
Expand Down
4 changes: 3 additions & 1 deletion packages/learning-gym/src/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,14 @@ const worldStr4 =

const world = WorldModel.decode(Buffer.from(worldStr4, "base64"))

const size = 96

const environment = new GameEnvironment(
world,
["Normal"],
{
grayScale: false,
size: 96,
size,
pixelsPerUnit: 2.0,
stepsPerFrame: 4,
},
Expand Down
Loading

0 comments on commit 7d57601

Please sign in to comment.