diff --git a/src/client/assets/room/furnitures/banknote/banknote.blend b/assets/room/furnitures/banknote/banknote.blend
similarity index 100%
rename from src/client/assets/room/furnitures/banknote/banknote.blend
rename to assets/room/furnitures/banknote/banknote.blend
diff --git a/src/client/assets/room/furnitures/banknote/banknote.glb b/assets/room/furnitures/banknote/banknote.glb
similarity index 100%
rename from src/client/assets/room/furnitures/banknote/banknote.glb
rename to assets/room/furnitures/banknote/banknote.glb
diff --git a/src/client/assets/room/furnitures/banknote/tex.png b/assets/room/furnitures/banknote/tex.png
similarity index 100%
rename from src/client/assets/room/furnitures/banknote/tex.png
rename to assets/room/furnitures/banknote/tex.png
diff --git a/src/client/assets/room/furnitures/bed/bed.blend b/assets/room/furnitures/bed/bed.blend
similarity index 100%
rename from src/client/assets/room/furnitures/bed/bed.blend
rename to assets/room/furnitures/bed/bed.blend
diff --git a/src/client/assets/room/furnitures/bed/bed.glb b/assets/room/furnitures/bed/bed.glb
similarity index 100%
rename from src/client/assets/room/furnitures/bed/bed.glb
rename to assets/room/furnitures/bed/bed.glb
diff --git a/src/client/assets/room/furnitures/bin/bin.blend b/assets/room/furnitures/bin/bin.blend
similarity index 100%
rename from src/client/assets/room/furnitures/bin/bin.blend
rename to assets/room/furnitures/bin/bin.blend
diff --git a/src/client/assets/room/furnitures/bin/bin.glb b/assets/room/furnitures/bin/bin.glb
similarity index 100%
rename from src/client/assets/room/furnitures/bin/bin.glb
rename to assets/room/furnitures/bin/bin.glb
diff --git a/src/client/assets/room/furnitures/book/book.blend b/assets/room/furnitures/book/book.blend
similarity index 100%
rename from src/client/assets/room/furnitures/book/book.blend
rename to assets/room/furnitures/book/book.blend
diff --git a/src/client/assets/room/furnitures/book/book.glb b/assets/room/furnitures/book/book.glb
similarity index 100%
rename from src/client/assets/room/furnitures/book/book.glb
rename to assets/room/furnitures/book/book.glb
diff --git a/src/client/assets/room/furnitures/book2/barcode.png b/assets/room/furnitures/book2/barcode.png
similarity index 100%
rename from src/client/assets/room/furnitures/book2/barcode.png
rename to assets/room/furnitures/book2/barcode.png
diff --git a/src/client/assets/room/furnitures/book2/book2.blend b/assets/room/furnitures/book2/book2.blend
similarity index 100%
rename from src/client/assets/room/furnitures/book2/book2.blend
rename to assets/room/furnitures/book2/book2.blend
diff --git a/src/client/assets/room/furnitures/book2/book2.glb b/assets/room/furnitures/book2/book2.glb
similarity index 100%
rename from src/client/assets/room/furnitures/book2/book2.glb
rename to assets/room/furnitures/book2/book2.glb
diff --git a/src/client/assets/room/furnitures/book2/texture.afdesign b/assets/room/furnitures/book2/texture.afdesign
similarity index 100%
rename from src/client/assets/room/furnitures/book2/texture.afdesign
rename to assets/room/furnitures/book2/texture.afdesign
diff --git a/src/client/assets/room/furnitures/book2/texture.png b/assets/room/furnitures/book2/texture.png
similarity index 100%
rename from src/client/assets/room/furnitures/book2/texture.png
rename to assets/room/furnitures/book2/texture.png
diff --git a/src/client/assets/room/furnitures/book2/uv.png b/assets/room/furnitures/book2/uv.png
similarity index 100%
rename from src/client/assets/room/furnitures/book2/uv.png
rename to assets/room/furnitures/book2/uv.png
diff --git a/src/client/assets/room/furnitures/cardboard-box/cardboard-box.blend b/assets/room/furnitures/cardboard-box/cardboard-box.blend
similarity index 100%
rename from src/client/assets/room/furnitures/cardboard-box/cardboard-box.blend
rename to assets/room/furnitures/cardboard-box/cardboard-box.blend
diff --git a/src/client/assets/room/furnitures/cardboard-box/cardboard-box.glb b/assets/room/furnitures/cardboard-box/cardboard-box.glb
similarity index 100%
rename from src/client/assets/room/furnitures/cardboard-box/cardboard-box.glb
rename to assets/room/furnitures/cardboard-box/cardboard-box.glb
diff --git a/src/client/assets/room/furnitures/cardboard-box2/cardboard-box2.blend b/assets/room/furnitures/cardboard-box2/cardboard-box2.blend
similarity index 100%
rename from src/client/assets/room/furnitures/cardboard-box2/cardboard-box2.blend
rename to assets/room/furnitures/cardboard-box2/cardboard-box2.blend
diff --git a/src/client/assets/room/furnitures/cardboard-box2/cardboard-box2.glb b/assets/room/furnitures/cardboard-box2/cardboard-box2.glb
similarity index 100%
rename from src/client/assets/room/furnitures/cardboard-box2/cardboard-box2.glb
rename to assets/room/furnitures/cardboard-box2/cardboard-box2.glb
diff --git a/src/client/assets/room/furnitures/cardboard-box2/texture.png b/assets/room/furnitures/cardboard-box2/texture.png
similarity index 100%
rename from src/client/assets/room/furnitures/cardboard-box2/texture.png
rename to assets/room/furnitures/cardboard-box2/texture.png
diff --git a/src/client/assets/room/furnitures/cardboard-box2/uv.png b/assets/room/furnitures/cardboard-box2/uv.png
similarity index 100%
rename from src/client/assets/room/furnitures/cardboard-box2/uv.png
rename to assets/room/furnitures/cardboard-box2/uv.png
diff --git a/src/client/assets/room/furnitures/cardboard-box3/cardboard-box3.blend b/assets/room/furnitures/cardboard-box3/cardboard-box3.blend
similarity index 100%
rename from src/client/assets/room/furnitures/cardboard-box3/cardboard-box3.blend
rename to assets/room/furnitures/cardboard-box3/cardboard-box3.blend
diff --git a/src/client/assets/room/furnitures/cardboard-box3/cardboard-box3.glb b/assets/room/furnitures/cardboard-box3/cardboard-box3.glb
similarity index 100%
rename from src/client/assets/room/furnitures/cardboard-box3/cardboard-box3.glb
rename to assets/room/furnitures/cardboard-box3/cardboard-box3.glb
diff --git a/src/client/assets/room/furnitures/cardboard-box3/texture.png b/assets/room/furnitures/cardboard-box3/texture.png
similarity index 100%
rename from src/client/assets/room/furnitures/cardboard-box3/texture.png
rename to assets/room/furnitures/cardboard-box3/texture.png
diff --git a/src/client/assets/room/furnitures/cardboard-box3/texture.xcf b/assets/room/furnitures/cardboard-box3/texture.xcf
similarity index 100%
rename from src/client/assets/room/furnitures/cardboard-box3/texture.xcf
rename to assets/room/furnitures/cardboard-box3/texture.xcf
diff --git a/src/client/assets/room/furnitures/cardboard-box3/uv.png b/assets/room/furnitures/cardboard-box3/uv.png
similarity index 100%
rename from src/client/assets/room/furnitures/cardboard-box3/uv.png
rename to assets/room/furnitures/cardboard-box3/uv.png
diff --git a/src/client/assets/room/furnitures/carpet-stripe/carpet-stripe.blend b/assets/room/furnitures/carpet-stripe/carpet-stripe.blend
similarity index 100%
rename from src/client/assets/room/furnitures/carpet-stripe/carpet-stripe.blend
rename to assets/room/furnitures/carpet-stripe/carpet-stripe.blend
diff --git a/src/client/assets/room/furnitures/carpet-stripe/carpet-stripe.glb b/assets/room/furnitures/carpet-stripe/carpet-stripe.glb
similarity index 100%
rename from src/client/assets/room/furnitures/carpet-stripe/carpet-stripe.glb
rename to assets/room/furnitures/carpet-stripe/carpet-stripe.glb
diff --git a/src/client/assets/room/furnitures/chair/chair.blend b/assets/room/furnitures/chair/chair.blend
similarity index 100%
rename from src/client/assets/room/furnitures/chair/chair.blend
rename to assets/room/furnitures/chair/chair.blend
diff --git a/src/client/assets/room/furnitures/chair/chair.glb b/assets/room/furnitures/chair/chair.glb
similarity index 100%
rename from src/client/assets/room/furnitures/chair/chair.glb
rename to assets/room/furnitures/chair/chair.glb
diff --git a/src/client/assets/room/furnitures/chair2/chair2.blend b/assets/room/furnitures/chair2/chair2.blend
similarity index 100%
rename from src/client/assets/room/furnitures/chair2/chair2.blend
rename to assets/room/furnitures/chair2/chair2.blend
diff --git a/src/client/assets/room/furnitures/chair2/chair2.glb b/assets/room/furnitures/chair2/chair2.glb
similarity index 100%
rename from src/client/assets/room/furnitures/chair2/chair2.glb
rename to assets/room/furnitures/chair2/chair2.glb
diff --git a/src/client/assets/room/furnitures/color-box/color-box.blend b/assets/room/furnitures/color-box/color-box.blend
similarity index 100%
rename from src/client/assets/room/furnitures/color-box/color-box.blend
rename to assets/room/furnitures/color-box/color-box.blend
diff --git a/src/client/assets/room/furnitures/color-box/color-box.glb b/assets/room/furnitures/color-box/color-box.glb
similarity index 100%
rename from src/client/assets/room/furnitures/color-box/color-box.glb
rename to assets/room/furnitures/color-box/color-box.glb
diff --git a/src/client/assets/room/furnitures/corkboard/corkboard.blend b/assets/room/furnitures/corkboard/corkboard.blend
similarity index 100%
rename from src/client/assets/room/furnitures/corkboard/corkboard.blend
rename to assets/room/furnitures/corkboard/corkboard.blend
diff --git a/src/client/assets/room/furnitures/corkboard/corkboard.glb b/assets/room/furnitures/corkboard/corkboard.glb
similarity index 100%
rename from src/client/assets/room/furnitures/corkboard/corkboard.glb
rename to assets/room/furnitures/corkboard/corkboard.glb
diff --git a/src/client/assets/room/furnitures/cube/cube.blend b/assets/room/furnitures/cube/cube.blend
similarity index 100%
rename from src/client/assets/room/furnitures/cube/cube.blend
rename to assets/room/furnitures/cube/cube.blend
diff --git a/src/client/assets/room/furnitures/cube/cube.glb b/assets/room/furnitures/cube/cube.glb
similarity index 100%
rename from src/client/assets/room/furnitures/cube/cube.glb
rename to assets/room/furnitures/cube/cube.glb
diff --git a/src/client/assets/room/furnitures/cup-noodle/cup-noodle.blend b/assets/room/furnitures/cup-noodle/cup-noodle.blend
similarity index 100%
rename from src/client/assets/room/furnitures/cup-noodle/cup-noodle.blend
rename to assets/room/furnitures/cup-noodle/cup-noodle.blend
diff --git a/src/client/assets/room/furnitures/cup-noodle/cup-noodle.glb b/assets/room/furnitures/cup-noodle/cup-noodle.glb
similarity index 100%
rename from src/client/assets/room/furnitures/cup-noodle/cup-noodle.glb
rename to assets/room/furnitures/cup-noodle/cup-noodle.glb
diff --git a/src/client/assets/room/furnitures/cup-noodle/noodle.png b/assets/room/furnitures/cup-noodle/noodle.png
similarity index 100%
rename from src/client/assets/room/furnitures/cup-noodle/noodle.png
rename to assets/room/furnitures/cup-noodle/noodle.png
diff --git a/src/client/assets/room/furnitures/desk/desk.blend b/assets/room/furnitures/desk/desk.blend
similarity index 100%
rename from src/client/assets/room/furnitures/desk/desk.blend
rename to assets/room/furnitures/desk/desk.blend
diff --git a/src/client/assets/room/furnitures/desk/desk.glb b/assets/room/furnitures/desk/desk.glb
similarity index 100%
rename from src/client/assets/room/furnitures/desk/desk.glb
rename to assets/room/furnitures/desk/desk.glb
diff --git a/src/client/assets/room/furnitures/doll-ai/doll-ai.blend b/assets/room/furnitures/doll-ai/doll-ai.blend
similarity index 100%
rename from src/client/assets/room/furnitures/doll-ai/doll-ai.blend
rename to assets/room/furnitures/doll-ai/doll-ai.blend
diff --git a/src/client/assets/room/furnitures/doll-ai/doll-ai.glb b/assets/room/furnitures/doll-ai/doll-ai.glb
similarity index 100%
rename from src/client/assets/room/furnitures/doll-ai/doll-ai.glb
rename to assets/room/furnitures/doll-ai/doll-ai.glb
diff --git a/src/client/assets/room/furnitures/doll-ai/doll_ai_tex.png b/assets/room/furnitures/doll-ai/doll_ai_tex.png
similarity index 100%
rename from src/client/assets/room/furnitures/doll-ai/doll_ai_tex.png
rename to assets/room/furnitures/doll-ai/doll_ai_tex.png
diff --git a/src/client/assets/room/furnitures/energy-drink/energy-drink.blend b/assets/room/furnitures/energy-drink/energy-drink.blend
similarity index 100%
rename from src/client/assets/room/furnitures/energy-drink/energy-drink.blend
rename to assets/room/furnitures/energy-drink/energy-drink.blend
diff --git a/src/client/assets/room/furnitures/energy-drink/energy-drink.glb b/assets/room/furnitures/energy-drink/energy-drink.glb
similarity index 100%
rename from src/client/assets/room/furnitures/energy-drink/energy-drink.glb
rename to assets/room/furnitures/energy-drink/energy-drink.glb
diff --git a/src/client/assets/room/furnitures/energy-drink/texture.afdesign b/assets/room/furnitures/energy-drink/texture.afdesign
similarity index 100%
rename from src/client/assets/room/furnitures/energy-drink/texture.afdesign
rename to assets/room/furnitures/energy-drink/texture.afdesign
diff --git a/src/client/assets/room/furnitures/energy-drink/texture.png b/assets/room/furnitures/energy-drink/texture.png
similarity index 100%
rename from src/client/assets/room/furnitures/energy-drink/texture.png
rename to assets/room/furnitures/energy-drink/texture.png
diff --git a/src/client/assets/room/furnitures/energy-drink/uv.png b/assets/room/furnitures/energy-drink/uv.png
similarity index 100%
rename from src/client/assets/room/furnitures/energy-drink/uv.png
rename to assets/room/furnitures/energy-drink/uv.png
diff --git a/src/client/assets/room/furnitures/eraser/cover.png b/assets/room/furnitures/eraser/cover.png
similarity index 100%
rename from src/client/assets/room/furnitures/eraser/cover.png
rename to assets/room/furnitures/eraser/cover.png
diff --git a/src/client/assets/room/furnitures/eraser/cover.psd b/assets/room/furnitures/eraser/cover.psd
similarity index 100%
rename from src/client/assets/room/furnitures/eraser/cover.psd
rename to assets/room/furnitures/eraser/cover.psd
diff --git a/src/client/assets/room/furnitures/eraser/eraser-uv.png b/assets/room/furnitures/eraser/eraser-uv.png
similarity index 100%
rename from src/client/assets/room/furnitures/eraser/eraser-uv.png
rename to assets/room/furnitures/eraser/eraser-uv.png
diff --git a/src/client/assets/room/furnitures/eraser/eraser.blend b/assets/room/furnitures/eraser/eraser.blend
similarity index 100%
rename from src/client/assets/room/furnitures/eraser/eraser.blend
rename to assets/room/furnitures/eraser/eraser.blend
diff --git a/src/client/assets/room/furnitures/eraser/eraser.glb b/assets/room/furnitures/eraser/eraser.glb
similarity index 100%
rename from src/client/assets/room/furnitures/eraser/eraser.glb
rename to assets/room/furnitures/eraser/eraser.glb
diff --git a/src/client/assets/room/furnitures/facial-tissue/facial-tissue-uv.png b/assets/room/furnitures/facial-tissue/facial-tissue-uv.png
similarity index 100%
rename from src/client/assets/room/furnitures/facial-tissue/facial-tissue-uv.png
rename to assets/room/furnitures/facial-tissue/facial-tissue-uv.png
diff --git a/src/client/assets/room/furnitures/facial-tissue/facial-tissue.blend b/assets/room/furnitures/facial-tissue/facial-tissue.blend
similarity index 100%
rename from src/client/assets/room/furnitures/facial-tissue/facial-tissue.blend
rename to assets/room/furnitures/facial-tissue/facial-tissue.blend
diff --git a/src/client/assets/room/furnitures/facial-tissue/facial-tissue.glb b/assets/room/furnitures/facial-tissue/facial-tissue.glb
similarity index 100%
rename from src/client/assets/room/furnitures/facial-tissue/facial-tissue.glb
rename to assets/room/furnitures/facial-tissue/facial-tissue.glb
diff --git a/src/client/assets/room/furnitures/facial-tissue/facial-tissue.png b/assets/room/furnitures/facial-tissue/facial-tissue.png
similarity index 100%
rename from src/client/assets/room/furnitures/facial-tissue/facial-tissue.png
rename to assets/room/furnitures/facial-tissue/facial-tissue.png
diff --git a/src/client/assets/room/furnitures/facial-tissue/facial-tissue.psd b/assets/room/furnitures/facial-tissue/facial-tissue.psd
similarity index 100%
rename from src/client/assets/room/furnitures/facial-tissue/facial-tissue.psd
rename to assets/room/furnitures/facial-tissue/facial-tissue.psd
diff --git a/src/client/assets/room/furnitures/fan/fan.blend b/assets/room/furnitures/fan/fan.blend
similarity index 100%
rename from src/client/assets/room/furnitures/fan/fan.blend
rename to assets/room/furnitures/fan/fan.blend
diff --git a/src/client/assets/room/furnitures/fan/fan.glb b/assets/room/furnitures/fan/fan.glb
similarity index 100%
rename from src/client/assets/room/furnitures/fan/fan.glb
rename to assets/room/furnitures/fan/fan.glb
diff --git a/src/client/assets/room/furnitures/holo-display/holo-display.blend b/assets/room/furnitures/holo-display/holo-display.blend
similarity index 100%
rename from src/client/assets/room/furnitures/holo-display/holo-display.blend
rename to assets/room/furnitures/holo-display/holo-display.blend
diff --git a/src/client/assets/room/furnitures/holo-display/holo-display.glb b/assets/room/furnitures/holo-display/holo-display.glb
similarity index 100%
rename from src/client/assets/room/furnitures/holo-display/holo-display.glb
rename to assets/room/furnitures/holo-display/holo-display.glb
diff --git a/src/client/assets/room/furnitures/holo-display/ray-uv.png b/assets/room/furnitures/holo-display/ray-uv.png
similarity index 100%
rename from src/client/assets/room/furnitures/holo-display/ray-uv.png
rename to assets/room/furnitures/holo-display/ray-uv.png
diff --git a/src/client/assets/room/furnitures/holo-display/ray.png b/assets/room/furnitures/holo-display/ray.png
similarity index 100%
rename from src/client/assets/room/furnitures/holo-display/ray.png
rename to assets/room/furnitures/holo-display/ray.png
diff --git a/src/client/assets/room/furnitures/keyboard/keyboard.blend b/assets/room/furnitures/keyboard/keyboard.blend
similarity index 100%
rename from src/client/assets/room/furnitures/keyboard/keyboard.blend
rename to assets/room/furnitures/keyboard/keyboard.blend
diff --git a/src/client/assets/room/furnitures/keyboard/keyboard.glb b/assets/room/furnitures/keyboard/keyboard.glb
similarity index 100%
rename from src/client/assets/room/furnitures/keyboard/keyboard.glb
rename to assets/room/furnitures/keyboard/keyboard.glb
diff --git a/src/client/assets/room/furnitures/low-table/low-table.blend b/assets/room/furnitures/low-table/low-table.blend
similarity index 100%
rename from src/client/assets/room/furnitures/low-table/low-table.blend
rename to assets/room/furnitures/low-table/low-table.blend
diff --git a/src/client/assets/room/furnitures/low-table/low-table.glb b/assets/room/furnitures/low-table/low-table.glb
similarity index 100%
rename from src/client/assets/room/furnitures/low-table/low-table.glb
rename to assets/room/furnitures/low-table/low-table.glb
diff --git a/src/client/assets/room/furnitures/mat/mat.blend b/assets/room/furnitures/mat/mat.blend
similarity index 100%
rename from src/client/assets/room/furnitures/mat/mat.blend
rename to assets/room/furnitures/mat/mat.blend
diff --git a/src/client/assets/room/furnitures/mat/mat.glb b/assets/room/furnitures/mat/mat.glb
similarity index 100%
rename from src/client/assets/room/furnitures/mat/mat.glb
rename to assets/room/furnitures/mat/mat.glb
diff --git a/src/client/assets/room/furnitures/milk/milk-uv.png b/assets/room/furnitures/milk/milk-uv.png
similarity index 100%
rename from src/client/assets/room/furnitures/milk/milk-uv.png
rename to assets/room/furnitures/milk/milk-uv.png
diff --git a/src/client/assets/room/furnitures/milk/milk.blend b/assets/room/furnitures/milk/milk.blend
similarity index 100%
rename from src/client/assets/room/furnitures/milk/milk.blend
rename to assets/room/furnitures/milk/milk.blend
diff --git a/src/client/assets/room/furnitures/milk/milk.glb b/assets/room/furnitures/milk/milk.glb
similarity index 100%
rename from src/client/assets/room/furnitures/milk/milk.glb
rename to assets/room/furnitures/milk/milk.glb
diff --git a/src/client/assets/room/furnitures/milk/milk.png b/assets/room/furnitures/milk/milk.png
similarity index 100%
rename from src/client/assets/room/furnitures/milk/milk.png
rename to assets/room/furnitures/milk/milk.png
diff --git a/src/client/assets/room/furnitures/milk/milk.psd b/assets/room/furnitures/milk/milk.psd
similarity index 100%
rename from src/client/assets/room/furnitures/milk/milk.psd
rename to assets/room/furnitures/milk/milk.psd
diff --git a/src/client/assets/room/furnitures/monitor/monitor.blend b/assets/room/furnitures/monitor/monitor.blend
similarity index 100%
rename from src/client/assets/room/furnitures/monitor/monitor.blend
rename to assets/room/furnitures/monitor/monitor.blend
diff --git a/src/client/assets/room/furnitures/monitor/monitor.glb b/assets/room/furnitures/monitor/monitor.glb
similarity index 100%
rename from src/client/assets/room/furnitures/monitor/monitor.glb
rename to assets/room/furnitures/monitor/monitor.glb
diff --git a/src/client/assets/room/furnitures/monitor/monitor.psd b/assets/room/furnitures/monitor/monitor.psd
similarity index 100%
rename from src/client/assets/room/furnitures/monitor/monitor.psd
rename to assets/room/furnitures/monitor/monitor.psd
diff --git a/src/client/assets/room/furnitures/monitor/screen-uv.png b/assets/room/furnitures/monitor/screen-uv.png
similarity index 100%
rename from src/client/assets/room/furnitures/monitor/screen-uv.png
rename to assets/room/furnitures/monitor/screen-uv.png
diff --git a/src/client/assets/room/furnitures/monitor/screen.jpg b/assets/room/furnitures/monitor/screen.jpg
similarity index 100%
rename from src/client/assets/room/furnitures/monitor/screen.jpg
rename to assets/room/furnitures/monitor/screen.jpg
diff --git a/src/client/assets/room/furnitures/moon/moon.blend b/assets/room/furnitures/moon/moon.blend
similarity index 100%
rename from src/client/assets/room/furnitures/moon/moon.blend
rename to assets/room/furnitures/moon/moon.blend
diff --git a/src/client/assets/room/furnitures/moon/moon.glb b/assets/room/furnitures/moon/moon.glb
similarity index 100%
rename from src/client/assets/room/furnitures/moon/moon.glb
rename to assets/room/furnitures/moon/moon.glb
diff --git a/src/client/assets/room/furnitures/moon/moon.jpg b/assets/room/furnitures/moon/moon.jpg
similarity index 100%
rename from src/client/assets/room/furnitures/moon/moon.jpg
rename to assets/room/furnitures/moon/moon.jpg
diff --git a/src/client/assets/room/furnitures/mousepad/mousepad.blend b/assets/room/furnitures/mousepad/mousepad.blend
similarity index 100%
rename from src/client/assets/room/furnitures/mousepad/mousepad.blend
rename to assets/room/furnitures/mousepad/mousepad.blend
diff --git a/src/client/assets/room/furnitures/mousepad/mousepad.glb b/assets/room/furnitures/mousepad/mousepad.glb
similarity index 100%
rename from src/client/assets/room/furnitures/mousepad/mousepad.glb
rename to assets/room/furnitures/mousepad/mousepad.glb
diff --git a/src/client/assets/room/furnitures/pc/motherboard-uv.png b/assets/room/furnitures/pc/motherboard-uv.png
similarity index 100%
rename from src/client/assets/room/furnitures/pc/motherboard-uv.png
rename to assets/room/furnitures/pc/motherboard-uv.png
diff --git a/src/client/assets/room/furnitures/pc/motherboard-uv.psd b/assets/room/furnitures/pc/motherboard-uv.psd
similarity index 100%
rename from src/client/assets/room/furnitures/pc/motherboard-uv.psd
rename to assets/room/furnitures/pc/motherboard-uv.psd
diff --git a/src/client/assets/room/furnitures/pc/motherboard.jpg b/assets/room/furnitures/pc/motherboard.jpg
similarity index 100%
rename from src/client/assets/room/furnitures/pc/motherboard.jpg
rename to assets/room/furnitures/pc/motherboard.jpg
diff --git a/src/client/assets/room/furnitures/pc/pc.blend b/assets/room/furnitures/pc/pc.blend
similarity index 100%
rename from src/client/assets/room/furnitures/pc/pc.blend
rename to assets/room/furnitures/pc/pc.blend
diff --git a/src/client/assets/room/furnitures/pc/pc.glb b/assets/room/furnitures/pc/pc.glb
similarity index 100%
rename from src/client/assets/room/furnitures/pc/pc.glb
rename to assets/room/furnitures/pc/pc.glb
diff --git a/src/client/assets/room/furnitures/pencil/pencil.blend b/assets/room/furnitures/pencil/pencil.blend
similarity index 100%
rename from src/client/assets/room/furnitures/pencil/pencil.blend
rename to assets/room/furnitures/pencil/pencil.blend
diff --git a/src/client/assets/room/furnitures/pencil/pencil.glb b/assets/room/furnitures/pencil/pencil.glb
similarity index 100%
rename from src/client/assets/room/furnitures/pencil/pencil.glb
rename to assets/room/furnitures/pencil/pencil.glb
diff --git a/src/client/assets/room/furnitures/photoframe/photo-uv.png b/assets/room/furnitures/photoframe/photo-uv.png
similarity index 100%
rename from src/client/assets/room/furnitures/photoframe/photo-uv.png
rename to assets/room/furnitures/photoframe/photo-uv.png
diff --git a/src/client/assets/room/furnitures/photoframe/photo.jpg b/assets/room/furnitures/photoframe/photo.jpg
similarity index 100%
rename from src/client/assets/room/furnitures/photoframe/photo.jpg
rename to assets/room/furnitures/photoframe/photo.jpg
diff --git a/src/client/assets/room/furnitures/photoframe/photoframe.blend b/assets/room/furnitures/photoframe/photoframe.blend
similarity index 100%
rename from src/client/assets/room/furnitures/photoframe/photoframe.blend
rename to assets/room/furnitures/photoframe/photoframe.blend
diff --git a/src/client/assets/room/furnitures/photoframe/photoframe.glb b/assets/room/furnitures/photoframe/photoframe.glb
similarity index 100%
rename from src/client/assets/room/furnitures/photoframe/photoframe.glb
rename to assets/room/furnitures/photoframe/photoframe.glb
diff --git a/src/client/assets/room/furnitures/piano/piano.blend b/assets/room/furnitures/piano/piano.blend
similarity index 100%
rename from src/client/assets/room/furnitures/piano/piano.blend
rename to assets/room/furnitures/piano/piano.blend
diff --git a/src/client/assets/room/furnitures/piano/piano.glb b/assets/room/furnitures/piano/piano.glb
similarity index 100%
rename from src/client/assets/room/furnitures/piano/piano.glb
rename to assets/room/furnitures/piano/piano.glb
diff --git a/src/client/assets/room/furnitures/pinguin/pinguin.blend b/assets/room/furnitures/pinguin/pinguin.blend
similarity index 100%
rename from src/client/assets/room/furnitures/pinguin/pinguin.blend
rename to assets/room/furnitures/pinguin/pinguin.blend
diff --git a/src/client/assets/room/furnitures/pinguin/pinguin.glb b/assets/room/furnitures/pinguin/pinguin.glb
similarity index 100%
rename from src/client/assets/room/furnitures/pinguin/pinguin.glb
rename to assets/room/furnitures/pinguin/pinguin.glb
diff --git a/src/client/assets/room/furnitures/plant/plant-soil-uv.png b/assets/room/furnitures/plant/plant-soil-uv.png
similarity index 100%
rename from src/client/assets/room/furnitures/plant/plant-soil-uv.png
rename to assets/room/furnitures/plant/plant-soil-uv.png
diff --git a/src/client/assets/room/furnitures/plant/plant-soil.png b/assets/room/furnitures/plant/plant-soil.png
similarity index 100%
rename from src/client/assets/room/furnitures/plant/plant-soil.png
rename to assets/room/furnitures/plant/plant-soil.png
diff --git a/src/client/assets/room/furnitures/plant/plant-soil.psd b/assets/room/furnitures/plant/plant-soil.psd
similarity index 100%
rename from src/client/assets/room/furnitures/plant/plant-soil.psd
rename to assets/room/furnitures/plant/plant-soil.psd
diff --git a/src/client/assets/room/furnitures/plant/plant.blend b/assets/room/furnitures/plant/plant.blend
similarity index 100%
rename from src/client/assets/room/furnitures/plant/plant.blend
rename to assets/room/furnitures/plant/plant.blend
diff --git a/src/client/assets/room/furnitures/plant/plant.glb b/assets/room/furnitures/plant/plant.glb
similarity index 100%
rename from src/client/assets/room/furnitures/plant/plant.glb
rename to assets/room/furnitures/plant/plant.glb
diff --git a/src/client/assets/room/furnitures/plant2/plant2.blend b/assets/room/furnitures/plant2/plant2.blend
similarity index 100%
rename from src/client/assets/room/furnitures/plant2/plant2.blend
rename to assets/room/furnitures/plant2/plant2.blend
diff --git a/src/client/assets/room/furnitures/plant2/plant2.glb b/assets/room/furnitures/plant2/plant2.glb
similarity index 100%
rename from src/client/assets/room/furnitures/plant2/plant2.glb
rename to assets/room/furnitures/plant2/plant2.glb
diff --git a/src/client/assets/room/furnitures/plant2/soil.png b/assets/room/furnitures/plant2/soil.png
similarity index 100%
rename from src/client/assets/room/furnitures/plant2/soil.png
rename to assets/room/furnitures/plant2/soil.png
diff --git a/src/client/assets/room/furnitures/poster-h/poster-h.blend b/assets/room/furnitures/poster-h/poster-h.blend
similarity index 100%
rename from src/client/assets/room/furnitures/poster-h/poster-h.blend
rename to assets/room/furnitures/poster-h/poster-h.blend
diff --git a/src/client/assets/room/furnitures/poster-h/poster-h.glb b/assets/room/furnitures/poster-h/poster-h.glb
similarity index 100%
rename from src/client/assets/room/furnitures/poster-h/poster-h.glb
rename to assets/room/furnitures/poster-h/poster-h.glb
diff --git a/src/client/assets/room/furnitures/poster-h/uv.png b/assets/room/furnitures/poster-h/uv.png
similarity index 100%
rename from src/client/assets/room/furnitures/poster-h/uv.png
rename to assets/room/furnitures/poster-h/uv.png
diff --git a/src/client/assets/room/furnitures/poster-v/poster-v.blend b/assets/room/furnitures/poster-v/poster-v.blend
similarity index 100%
rename from src/client/assets/room/furnitures/poster-v/poster-v.blend
rename to assets/room/furnitures/poster-v/poster-v.blend
diff --git a/src/client/assets/room/furnitures/poster-v/poster-v.glb b/assets/room/furnitures/poster-v/poster-v.glb
similarity index 100%
rename from src/client/assets/room/furnitures/poster-v/poster-v.glb
rename to assets/room/furnitures/poster-v/poster-v.glb
diff --git a/src/client/assets/room/furnitures/poster-v/uv.png b/assets/room/furnitures/poster-v/uv.png
similarity index 100%
rename from src/client/assets/room/furnitures/poster-v/uv.png
rename to assets/room/furnitures/poster-v/uv.png
diff --git a/src/client/assets/room/furnitures/pudding/pudding.blend b/assets/room/furnitures/pudding/pudding.blend
similarity index 100%
rename from src/client/assets/room/furnitures/pudding/pudding.blend
rename to assets/room/furnitures/pudding/pudding.blend
diff --git a/src/client/assets/room/furnitures/pudding/pudding.glb b/assets/room/furnitures/pudding/pudding.glb
similarity index 100%
rename from src/client/assets/room/furnitures/pudding/pudding.glb
rename to assets/room/furnitures/pudding/pudding.glb
diff --git a/src/client/assets/room/furnitures/rubik-cube/rubik-cube.blend b/assets/room/furnitures/rubik-cube/rubik-cube.blend
similarity index 100%
rename from src/client/assets/room/furnitures/rubik-cube/rubik-cube.blend
rename to assets/room/furnitures/rubik-cube/rubik-cube.blend
diff --git a/src/client/assets/room/furnitures/rubik-cube/rubik-cube.glb b/assets/room/furnitures/rubik-cube/rubik-cube.glb
similarity index 100%
rename from src/client/assets/room/furnitures/rubik-cube/rubik-cube.glb
rename to assets/room/furnitures/rubik-cube/rubik-cube.glb
diff --git a/src/client/assets/room/furnitures/server/rack-uv.png b/assets/room/furnitures/server/rack-uv.png
similarity index 100%
rename from src/client/assets/room/furnitures/server/rack-uv.png
rename to assets/room/furnitures/server/rack-uv.png
diff --git a/src/client/assets/room/furnitures/server/rack.png b/assets/room/furnitures/server/rack.png
similarity index 100%
rename from src/client/assets/room/furnitures/server/rack.png
rename to assets/room/furnitures/server/rack.png
diff --git a/src/client/assets/room/furnitures/server/server.blend b/assets/room/furnitures/server/server.blend
similarity index 100%
rename from src/client/assets/room/furnitures/server/server.blend
rename to assets/room/furnitures/server/server.blend
diff --git a/src/client/assets/room/furnitures/server/server.glb b/assets/room/furnitures/server/server.glb
similarity index 100%
rename from src/client/assets/room/furnitures/server/server.glb
rename to assets/room/furnitures/server/server.glb
diff --git a/src/client/assets/room/furnitures/server/server.png b/assets/room/furnitures/server/server.png
similarity index 100%
rename from src/client/assets/room/furnitures/server/server.png
rename to assets/room/furnitures/server/server.png
diff --git a/src/client/assets/room/furnitures/server/uv.png b/assets/room/furnitures/server/uv.png
similarity index 100%
rename from src/client/assets/room/furnitures/server/uv.png
rename to assets/room/furnitures/server/uv.png
diff --git a/src/client/assets/room/furnitures/sofa/sofa.blend b/assets/room/furnitures/sofa/sofa.blend
similarity index 100%
rename from src/client/assets/room/furnitures/sofa/sofa.blend
rename to assets/room/furnitures/sofa/sofa.blend
diff --git a/src/client/assets/room/furnitures/sofa/sofa.glb b/assets/room/furnitures/sofa/sofa.glb
similarity index 100%
rename from src/client/assets/room/furnitures/sofa/sofa.glb
rename to assets/room/furnitures/sofa/sofa.glb
diff --git a/src/client/assets/room/furnitures/spiral/spiral.blend b/assets/room/furnitures/spiral/spiral.blend
similarity index 100%
rename from src/client/assets/room/furnitures/spiral/spiral.blend
rename to assets/room/furnitures/spiral/spiral.blend
diff --git a/src/client/assets/room/furnitures/spiral/spiral.glb b/assets/room/furnitures/spiral/spiral.glb
similarity index 100%
rename from src/client/assets/room/furnitures/spiral/spiral.glb
rename to assets/room/furnitures/spiral/spiral.glb
diff --git a/src/client/assets/room/furnitures/tv/screen-uv.png b/assets/room/furnitures/tv/screen-uv.png
similarity index 100%
rename from src/client/assets/room/furnitures/tv/screen-uv.png
rename to assets/room/furnitures/tv/screen-uv.png
diff --git a/src/client/assets/room/furnitures/tv/tv.blend b/assets/room/furnitures/tv/tv.blend
similarity index 100%
rename from src/client/assets/room/furnitures/tv/tv.blend
rename to assets/room/furnitures/tv/tv.blend
diff --git a/src/client/assets/room/furnitures/tv/tv.glb b/assets/room/furnitures/tv/tv.glb
similarity index 100%
rename from src/client/assets/room/furnitures/tv/tv.glb
rename to assets/room/furnitures/tv/tv.glb
diff --git a/src/client/assets/room/furnitures/wall-clock/wall-clock.blend b/assets/room/furnitures/wall-clock/wall-clock.blend
similarity index 100%
rename from src/client/assets/room/furnitures/wall-clock/wall-clock.blend
rename to assets/room/furnitures/wall-clock/wall-clock.blend
diff --git a/src/client/assets/room/furnitures/wall-clock/wall-clock.glb b/assets/room/furnitures/wall-clock/wall-clock.glb
similarity index 100%
rename from src/client/assets/room/furnitures/wall-clock/wall-clock.glb
rename to assets/room/furnitures/wall-clock/wall-clock.glb
diff --git a/src/client/assets/room/rooms/default/default.blend b/assets/room/rooms/default/default.blend
similarity index 100%
rename from src/client/assets/room/rooms/default/default.blend
rename to assets/room/rooms/default/default.blend
diff --git a/src/client/assets/room/rooms/default/default.glb b/assets/room/rooms/default/default.glb
similarity index 100%
rename from src/client/assets/room/rooms/default/default.glb
rename to assets/room/rooms/default/default.glb
diff --git a/src/client/assets/room/rooms/washitsu/husuma-uv.png b/assets/room/rooms/washitsu/husuma-uv.png
similarity index 100%
rename from src/client/assets/room/rooms/washitsu/husuma-uv.png
rename to assets/room/rooms/washitsu/husuma-uv.png
diff --git a/src/client/assets/room/rooms/washitsu/husuma.png b/assets/room/rooms/washitsu/husuma.png
similarity index 100%
rename from src/client/assets/room/rooms/washitsu/husuma.png
rename to assets/room/rooms/washitsu/husuma.png
diff --git a/src/client/assets/room/rooms/washitsu/tatami-single1600.png b/assets/room/rooms/washitsu/tatami-single1600.png
similarity index 100%
rename from src/client/assets/room/rooms/washitsu/tatami-single1600.png
rename to assets/room/rooms/washitsu/tatami-single1600.png
diff --git a/src/client/assets/room/rooms/washitsu/tatami-uv.png b/assets/room/rooms/washitsu/tatami-uv.png
similarity index 100%
rename from src/client/assets/room/rooms/washitsu/tatami-uv.png
rename to assets/room/rooms/washitsu/tatami-uv.png
diff --git a/src/client/assets/room/rooms/washitsu/tatami.afdesign b/assets/room/rooms/washitsu/tatami.afdesign
similarity index 100%
rename from src/client/assets/room/rooms/washitsu/tatami.afdesign
rename to assets/room/rooms/washitsu/tatami.afdesign
diff --git a/src/client/assets/room/rooms/washitsu/tatami.png b/assets/room/rooms/washitsu/tatami.png
similarity index 100%
rename from src/client/assets/room/rooms/washitsu/tatami.png
rename to assets/room/rooms/washitsu/tatami.png
diff --git a/src/client/assets/room/rooms/washitsu/washitsu.blend b/assets/room/rooms/washitsu/washitsu.blend
similarity index 100%
rename from src/client/assets/room/rooms/washitsu/washitsu.blend
rename to assets/room/rooms/washitsu/washitsu.blend
diff --git a/src/client/assets/room/rooms/washitsu/washitsu.glb b/assets/room/rooms/washitsu/washitsu.glb
similarity index 100%
rename from src/client/assets/room/rooms/washitsu/washitsu.glb
rename to assets/room/rooms/washitsu/washitsu.glb
diff --git a/src/client/assets/sounds/aisha/1.mp3 b/assets/sounds/aisha/1.mp3
similarity index 100%
rename from src/client/assets/sounds/aisha/1.mp3
rename to assets/sounds/aisha/1.mp3
diff --git a/src/client/assets/sounds/aisha/2.mp3 b/assets/sounds/aisha/2.mp3
similarity index 100%
rename from src/client/assets/sounds/aisha/2.mp3
rename to assets/sounds/aisha/2.mp3
diff --git a/src/client/assets/sounds/aisha/3.mp3 b/assets/sounds/aisha/3.mp3
similarity index 100%
rename from src/client/assets/sounds/aisha/3.mp3
rename to assets/sounds/aisha/3.mp3
diff --git a/src/client/assets/sounds/noizenecio/kick_gaba.mp3 b/assets/sounds/noizenecio/kick_gaba.mp3
similarity index 100%
rename from src/client/assets/sounds/noizenecio/kick_gaba.mp3
rename to assets/sounds/noizenecio/kick_gaba.mp3
diff --git a/src/client/assets/sounds/noizenecio/kick_gaba2.mp3 b/assets/sounds/noizenecio/kick_gaba2.mp3
similarity index 100%
rename from src/client/assets/sounds/noizenecio/kick_gaba2.mp3
rename to assets/sounds/noizenecio/kick_gaba2.mp3
diff --git a/src/client/assets/sounds/syuilo/down.mp3 b/assets/sounds/syuilo/down.mp3
similarity index 100%
rename from src/client/assets/sounds/syuilo/down.mp3
rename to assets/sounds/syuilo/down.mp3
diff --git a/src/client/assets/sounds/syuilo/kick.mp3 b/assets/sounds/syuilo/kick.mp3
similarity index 100%
rename from src/client/assets/sounds/syuilo/kick.mp3
rename to assets/sounds/syuilo/kick.mp3
diff --git a/src/client/assets/sounds/syuilo/pirori-square-wet.mp3 b/assets/sounds/syuilo/pirori-square-wet.mp3
similarity index 100%
rename from src/client/assets/sounds/syuilo/pirori-square-wet.mp3
rename to assets/sounds/syuilo/pirori-square-wet.mp3
diff --git a/src/client/assets/sounds/syuilo/pirori-wet.mp3 b/assets/sounds/syuilo/pirori-wet.mp3
similarity index 100%
rename from src/client/assets/sounds/syuilo/pirori-wet.mp3
rename to assets/sounds/syuilo/pirori-wet.mp3
diff --git a/src/client/assets/sounds/syuilo/pirori.mp3 b/assets/sounds/syuilo/pirori.mp3
similarity index 100%
rename from src/client/assets/sounds/syuilo/pirori.mp3
rename to assets/sounds/syuilo/pirori.mp3
diff --git a/src/client/assets/sounds/syuilo/poi1.mp3 b/assets/sounds/syuilo/poi1.mp3
similarity index 100%
rename from src/client/assets/sounds/syuilo/poi1.mp3
rename to assets/sounds/syuilo/poi1.mp3
diff --git a/src/client/assets/sounds/syuilo/poi2.mp3 b/assets/sounds/syuilo/poi2.mp3
similarity index 100%
rename from src/client/assets/sounds/syuilo/poi2.mp3
rename to assets/sounds/syuilo/poi2.mp3
diff --git a/src/client/assets/sounds/syuilo/pope1.mp3 b/assets/sounds/syuilo/pope1.mp3
similarity index 100%
rename from src/client/assets/sounds/syuilo/pope1.mp3
rename to assets/sounds/syuilo/pope1.mp3
diff --git a/src/client/assets/sounds/syuilo/pope2.mp3 b/assets/sounds/syuilo/pope2.mp3
similarity index 100%
rename from src/client/assets/sounds/syuilo/pope2.mp3
rename to assets/sounds/syuilo/pope2.mp3
diff --git a/src/client/assets/sounds/syuilo/popo.mp3 b/assets/sounds/syuilo/popo.mp3
similarity index 100%
rename from src/client/assets/sounds/syuilo/popo.mp3
rename to assets/sounds/syuilo/popo.mp3
diff --git a/src/client/assets/sounds/syuilo/reverved.mp3 b/assets/sounds/syuilo/reverved.mp3
similarity index 100%
rename from src/client/assets/sounds/syuilo/reverved.mp3
rename to assets/sounds/syuilo/reverved.mp3
diff --git a/src/client/assets/sounds/syuilo/ryukyu.mp3 b/assets/sounds/syuilo/ryukyu.mp3
similarity index 100%
rename from src/client/assets/sounds/syuilo/ryukyu.mp3
rename to assets/sounds/syuilo/ryukyu.mp3
diff --git a/src/client/assets/sounds/syuilo/snare.mp3 b/assets/sounds/syuilo/snare.mp3
similarity index 100%
rename from src/client/assets/sounds/syuilo/snare.mp3
rename to assets/sounds/syuilo/snare.mp3
diff --git a/src/client/assets/sounds/syuilo/square-pico.mp3 b/assets/sounds/syuilo/square-pico.mp3
similarity index 100%
rename from src/client/assets/sounds/syuilo/square-pico.mp3
rename to assets/sounds/syuilo/square-pico.mp3
diff --git a/src/client/assets/sounds/syuilo/triple.mp3 b/assets/sounds/syuilo/triple.mp3
similarity index 100%
rename from src/client/assets/sounds/syuilo/triple.mp3
rename to assets/sounds/syuilo/triple.mp3
diff --git a/src/client/assets/sounds/syuilo/up.mp3 b/assets/sounds/syuilo/up.mp3
similarity index 100%
rename from src/client/assets/sounds/syuilo/up.mp3
rename to assets/sounds/syuilo/up.mp3
diff --git a/src/client/assets/sounds/syuilo/waon.mp3 b/assets/sounds/syuilo/waon.mp3
similarity index 100%
rename from src/client/assets/sounds/syuilo/waon.mp3
rename to assets/sounds/syuilo/waon.mp3
diff --git a/gulpfile.ts b/gulpfile.ts
index 7d20aba4e..95b239488 100644
--- a/gulpfile.ts
+++ b/gulpfile.ts
@@ -6,7 +6,6 @@ import * as fs from 'fs';
 import * as gulp from 'gulp';
 import * as ts from 'gulp-typescript';
 import * as rimraf from 'rimraf';
-import * as rename from 'gulp-rename';
 import * as replace from 'gulp-replace';
 const terser = require('gulp-terser');
 const cssnano = require('gulp-cssnano');
@@ -29,16 +28,16 @@ gulp.task('build:copy:views', () =>
 );
 
 gulp.task('build:copy:fonts', () =>
-	gulp.src('./node_modules/three/examples/fonts/**/*').pipe(gulp.dest('./built/client/assets/fonts/'))
+	gulp.src('./node_modules/three/examples/fonts/**/*').pipe(gulp.dest('./built/assets/fonts/'))
 );
 
 gulp.task('build:copy:locales', cb => {
-	fs.mkdirSync('./built/client/assets/locales', { recursive: true });
+	fs.mkdirSync('./built/assets/locales', { recursive: true });
 
 	const v = { '_version_': meta.version };
 
 	for (const [lang, locale] of Object.entries(locales)) {
-		fs.writeFileSync(`./built/client/assets/locales/${lang}.${meta.version}.json`, JSON.stringify({ ...locale, ...v }), 'utf-8');
+		fs.writeFileSync(`./built/assets/locales/${lang}.${meta.version}.json`, JSON.stringify({ ...locale, ...v }), 'utf-8');
 	}
 
 	cb();
@@ -79,33 +78,17 @@ gulp.task('cleanall', gulp.parallel('clean', cb =>
 	rimraf('./node_modules', cb)
 ));
 
-gulp.task('copy:client', () =>
-		gulp.src([
-			'./assets/**/*',
-			'./src/client/assets/**/*',
-		])
-			.pipe(rename(path => {
-				path.dirname = path.dirname!.replace('assets', '.');
-			}))
-			.pipe(gulp.dest('./built/client/assets/'))
-);
-
 gulp.task('copy:docs', () =>
 		gulp.src([
 			'./src/docs/**/*',
 		])
-		.pipe(gulp.dest('./built/client/assets/docs/'))
+		.pipe(gulp.dest('./built/assets/docs/'))
 );
 
-gulp.task('build:client', gulp.parallel(
-	'copy:client',
-	'copy:docs'
-));
-
 gulp.task('build', gulp.parallel(
 	'build:ts',
 	'build:copy',
-	'build:client',
+	'copy:docs',
 ));
 
 gulp.task('default', gulp.task('build'));
diff --git a/src/client/assets/manifest.json b/src/client/assets/manifest.json
index f5a1d47a8..48030a298 100644
--- a/src/client/assets/manifest.json
+++ b/src/client/assets/manifest.json
@@ -7,12 +7,12 @@
 	"theme_color": "#86b300",
 	"icons": [
 		{
-			"src": "/assets/icons/192.png",
+			"src": "/static-assets/icons/192.png",
 			"sizes": "192x192",
 			"type": "image/png"
 		},
 		{
-			"src": "/assets/icons/512.png",
+			"src": "/static-assets/icons/512.png",
 			"sizes": "512x512",
 			"type": "image/png"
 		}
diff --git a/src/client/pages/v.vue b/src/client/pages/v.vue
index 021f8908f..f456a2999 100644
--- a/src/client/pages/v.vue
+++ b/src/client/pages/v.vue
@@ -2,7 +2,7 @@
 <div>
 	<section class="_section">
 		<div class="_content" style="text-align: center;">
-			<img src="/assets/icons/512.png" alt="" style="display: block; width: 100px; margin: 0 auto; border-radius: 16px;"/>
+			<img src="/static-assets/icons/512.png" alt="" style="display: block; width: 100px; margin: 0 auto; border-radius: 16px;"/>
 			<div style="margin-top: 0.75em;">Misskey</div>
 			<div style="opacity: 0.5;">v{{ version }}</div>
 		</div>
diff --git a/src/client/pages/welcome.entrance.a.vue b/src/client/pages/welcome.entrance.a.vue
index 43d21d920..872ea8797 100644
--- a/src/client/pages/welcome.entrance.a.vue
+++ b/src/client/pages/welcome.entrance.a.vue
@@ -5,7 +5,7 @@
 		<XTimeline class="tl"/>
 		<div class="shape1"></div>
 		<div class="shape2"></div>
-		<img src="/assets/misskey.svg" class="misskey"/>
+		<img src="/static-assets/misskey.svg" class="misskey"/>
 		<div class="emojis">
 			<MkEmoji :normal="true" :no-style="true" emoji="👍"/>
 			<MkEmoji :normal="true" :no-style="true" emoji="❤"/>
diff --git a/src/client/pages/welcome.entrance.b.vue b/src/client/pages/welcome.entrance.b.vue
index 8a6f60e72..95b99fb46 100644
--- a/src/client/pages/welcome.entrance.b.vue
+++ b/src/client/pages/welcome.entrance.b.vue
@@ -29,7 +29,7 @@
 				</I18n>
 			</div>
 		</div>
-		<img src="/assets/misskey.svg" class="misskey"/>
+		<img src="/static-assets/misskey.svg" class="misskey"/>
 	</div>
 </div>
 </template>
diff --git a/src/client/pages/welcome.entrance.c.vue b/src/client/pages/welcome.entrance.c.vue
index e9df492cb..8aba80e78 100644
--- a/src/client/pages/welcome.entrance.c.vue
+++ b/src/client/pages/welcome.entrance.c.vue
@@ -11,7 +11,7 @@
 			<MkEmoji :normal="true" :no-style="true" emoji="🍮"/>
 		</div>
 		<div class="main">
-			<img src="/assets/misskey.svg" class="misskey"/>
+			<img src="/static-assets/misskey.svg" class="misskey"/>
 			<div class="form _panel">
 				<div class="bg">
 					<div class="fade"></div>
diff --git a/src/client/scripts/room/room.ts b/src/client/scripts/room/room.ts
index 45ccd59b7..8fe3ebdeb 100644
--- a/src/client/scripts/room/room.ts
+++ b/src/client/scripts/room/room.ts
@@ -340,7 +340,7 @@ export class Room {
 	@autobind
 	private loadRoom() {
 		const type = this.roomInfo.roomType;
-		new GLTFLoader().load(`/assets/room/rooms/${type}/${type}.glb`, gltf => {
+		new GLTFLoader().load(`/static-assets/room/rooms/${type}/${type}.glb`, gltf => {
 			gltf.scene.traverse(child => {
 				if (!(child instanceof THREE.Mesh)) return;
 
@@ -375,7 +375,7 @@ export class Room {
 		const def = furnitureDefs.find(d => d.id === furniture.type);
 		return new Promise<GLTF>((res, rej) => {
 			const loader = new GLTFLoader();
-			loader.load(`/assets/room/furnitures/${furniture.type}/${furniture.type}.glb`, gltf => {
+			loader.load(`/static-assets/room/furnitures/${furniture.type}/${furniture.type}.glb`, gltf => {
 				const model = gltf.scene;
 
 				// Load animation
diff --git a/src/client/scripts/sound.ts b/src/client/scripts/sound.ts
index 176d2b68b..bb4cfee06 100644
--- a/src/client/scripts/sound.ts
+++ b/src/client/scripts/sound.ts
@@ -16,7 +16,7 @@ export function playFile(file: string, volume: number) {
 	if (cache.has(file)) {
 		audio = cache.get(file);
 	} else {
-		audio = new Audio(`/assets/sounds/${file}.mp3`);
+		audio = new Audio(`/static-assets/sounds/${file}.mp3`);
 		cache.set(file, audio);
 	}
 	audio.volume = masterVolume - ((1 - volume) * masterVolume);
diff --git a/src/server/api/openapi/gen-spec.ts b/src/server/api/openapi/gen-spec.ts
index 78e481037..8fc634d69 100644
--- a/src/server/api/openapi/gen-spec.ts
+++ b/src/server/api/openapi/gen-spec.ts
@@ -13,7 +13,7 @@ export function genOpenapiSpec(lang = 'ja-JP') {
 			version: 'v1',
 			title: 'Misskey API',
 			description: getDescription(lang),
-			'x-logo': { url: '/assets/api-doc.png' }
+			'x-logo': { url: '/static-assets/api-doc.png' }
 		},
 
 		externalDocs: {
diff --git a/src/server/web/index.ts b/src/server/web/index.ts
index a1d79100a..27fa495f8 100644
--- a/src/server/web/index.ts
+++ b/src/server/web/index.ts
@@ -28,7 +28,8 @@ const markdown = MarkdownIt({
 	html: true
 });
 
-const client = `${__dirname}/../../client/`;
+const staticAssets = `${__dirname}/../../../assets/`;
+const assets = `${__dirname}/../../assets/`;
 
 // Init app
 const app = new Koa();
@@ -57,24 +58,31 @@ const router = new Router();
 
 //#region static assets
 
+router.get('/static-assets/(.*)', async ctx => {
+	await send(ctx as any, ctx.path.replace('/static-assets/', ''), {
+		root: staticAssets,
+		maxage: ms('7 days'),
+	});
+});
+
 router.get('/assets/(.*)', async ctx => {
-	await send(ctx as any, ctx.path, {
-		root: client,
+	await send(ctx as any, ctx.path.replace('/assets/', ''), {
+		root: assets,
 		maxage: ms('7 days'),
 	});
 });
 
 // Apple touch icon
 router.get('/apple-touch-icon.png', async ctx => {
-	await send(ctx as any, '/assets/apple-touch-icon.png', {
-		root: client
+	await send(ctx as any, '/apple-touch-icon.png', {
+		root: assets
 	});
 });
 
 // ServiceWorker
 router.get('/sw.js', async ctx => {
-	await send(ctx as any, `/assets/sw.${config.version}.js`, {
-		root: client
+	await send(ctx as any, `/sw.${config.version}.js`, {
+		root: assets
 	});
 });
 
@@ -82,8 +90,8 @@ router.get('/sw.js', async ctx => {
 router.get('/manifest.json', require('./manifest'));
 
 router.get('/robots.txt', async ctx => {
-	await send(ctx as any, '/assets/robots.txt', {
-		root: client
+	await send(ctx as any, '/robots.txt', {
+		root: assets
 	});
 });
 
@@ -91,8 +99,8 @@ router.get('/robots.txt', async ctx => {
 
 // Docs
 router.get('/api-doc', async ctx => {
-	await send(ctx as any, '/assets/redoc.html', {
-		root: client
+	await send(ctx as any, '/redoc.html', {
+		root: assets
 	});
 });
 
diff --git a/src/server/web/manifest.ts b/src/server/web/manifest.ts
index 36c901d26..a1c937703 100644
--- a/src/server/web/manifest.ts
+++ b/src/server/web/manifest.ts
@@ -1,5 +1,5 @@
 import * as Koa from 'koa';
-import * as manifest from '../../client/assets/manifest.json';
+import * as manifest from '../../../src/client/assets/manifest.json';
 import { fetchMeta } from '../../misc/fetch-meta';
 
 module.exports = async (ctx: Koa.Context) => {
diff --git a/src/server/web/views/info.pug b/src/server/web/views/info.pug
index eed69fc99..323dce974 100644
--- a/src/server/web/views/info.pug
+++ b/src/server/web/views/info.pug
@@ -66,7 +66,7 @@ html
 		main
 			header
 				h1 Misskey Version #{version}
-				img(src='/assets/misskey-php-like-logo.png' alt='')
+				img(src='/static-assets/misskey-php-like-logo.png' alt='')
 			table
 				tr
 					th Instance
diff --git a/src/services/send-email.ts b/src/services/send-email.ts
index c716b3671..481480839 100644
--- a/src/services/send-email.ts
+++ b/src/services/send-email.ts
@@ -8,7 +8,7 @@ export const logger = new Logger('email');
 export async function sendEmail(to: string, subject: string, html: string, text: string) {
 	const meta = await fetchMeta(true);
 
-	const iconUrl = `${config.url}/assets/mi-white.png`;
+	const iconUrl = `${config.url}/static-assets/mi-white.png`;
 	const emailSettingUrl = `${config.url}/settings/email`;
 
 	const enableAuth = meta.smtpUser != null && meta.smtpUser !== '';
diff --git a/webpack.config.ts b/webpack.config.ts
index cc5264ceb..c530cf335 100644
--- a/webpack.config.ts
+++ b/webpack.config.ts
@@ -147,7 +147,7 @@ module.exports = {
 		}),
 	],
 	output: {
-		path: __dirname + '/built/client/assets',
+		path: __dirname + '/built/assets',
 		filename: `[name].${meta.version}.js`,
 		publicPath: `/assets/`,
 		pathinfo: false,