├── .github └── workflows │ └── main.yml ├── CNAME ├── LICENSE ├── README.md ├── favicon.ico ├── index.html ├── js ├── ball.js ├── engine │ ├── README.md │ ├── controls │ │ ├── flying-controls.js │ │ └── orbit-controls.js │ ├── core │ │ ├── animation.js │ │ ├── bounding-volume.js │ │ ├── buffers.js │ │ ├── camera.js │ │ ├── ecs.js │ │ ├── entity-group.js │ │ ├── input.js │ │ ├── instance-color.js │ │ ├── light.js │ │ ├── materials.js │ │ ├── mesh.js │ │ ├── render-world.js │ │ ├── skin.js │ │ ├── skybox.js │ │ ├── stage.js │ │ └── transform.js │ ├── debug │ │ ├── bone-visualizer.js │ │ └── bounds-visualizer.js │ ├── geometry │ │ ├── box.js │ │ └── sphere.js │ ├── loaders │ │ ├── gltf.js │ │ └── lib │ │ │ ├── draco-worker.js │ │ │ └── gltf2-loader.js │ ├── util │ │ └── texture-atlas-allocator.js │ └── webgpu │ │ ├── materials │ │ ├── webgpu-material-factory.js │ │ ├── webgpu-materials.js │ │ ├── webgpu-pbr-material.js │ │ ├── webgpu-skybox-material.js │ │ └── webgpu-unlit-material.js │ │ ├── webgpu-bind-group-layouts.js │ │ ├── webgpu-bloom.js │ │ ├── webgpu-buffer.js │ │ ├── webgpu-camera.js │ │ ├── webgpu-clustered-light.js │ │ ├── webgpu-flags.js │ │ ├── webgpu-light-sprite.js │ │ ├── webgpu-mesh.js │ │ ├── webgpu-render-batch.js │ │ ├── webgpu-render-targets.js │ │ ├── webgpu-renderer.js │ │ ├── webgpu-shadow.js │ │ ├── webgpu-system.js │ │ ├── webgpu-texture-debug.js │ │ ├── webgpu-world.js │ │ └── wgsl │ │ ├── bloom.js │ │ ├── clustered-light.js │ │ ├── common.js │ │ ├── default-vertex.js │ │ ├── light-sprite.js │ │ ├── pbr-material.js │ │ ├── shadow.js │ │ ├── skybox.js │ │ ├── unlit-material.js │ │ └── wgsl-utils.js ├── html-display.js ├── impact-damage.js ├── lifetime.js ├── physics-2d-visualizer.js ├── physics-2d.js ├── player.js ├── query-args.js ├── score.js ├── spookyball.js └── stage.js ├── media ├── images │ ├── icon-128.png │ ├── icon-256.png │ ├── icon-32.png │ ├── icon-512.png │ ├── icon-96.png │ ├── left-banner.png │ ├── right-banner.png │ └── screenshot.png └── models │ ├── ball-compressed.glb │ ├── crow-compressed.glb │ ├── gltf-minify.sh │ ├── graveyard-compressed.glb │ └── paddle-compressed.glb └── package.json /.github/workflows/main.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/.github/workflows/main.yml -------------------------------------------------------------------------------- /CNAME: -------------------------------------------------------------------------------- 1 | spookyball.com -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/README.md -------------------------------------------------------------------------------- /favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/favicon.ico -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/index.html -------------------------------------------------------------------------------- /js/ball.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/ball.js -------------------------------------------------------------------------------- /js/engine/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/engine/README.md -------------------------------------------------------------------------------- /js/engine/controls/flying-controls.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/engine/controls/flying-controls.js -------------------------------------------------------------------------------- /js/engine/controls/orbit-controls.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/engine/controls/orbit-controls.js -------------------------------------------------------------------------------- /js/engine/core/animation.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/engine/core/animation.js -------------------------------------------------------------------------------- /js/engine/core/bounding-volume.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/engine/core/bounding-volume.js -------------------------------------------------------------------------------- /js/engine/core/buffers.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/engine/core/buffers.js -------------------------------------------------------------------------------- /js/engine/core/camera.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/engine/core/camera.js -------------------------------------------------------------------------------- /js/engine/core/ecs.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/engine/core/ecs.js -------------------------------------------------------------------------------- /js/engine/core/entity-group.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/engine/core/entity-group.js -------------------------------------------------------------------------------- /js/engine/core/input.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/engine/core/input.js -------------------------------------------------------------------------------- /js/engine/core/instance-color.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/engine/core/instance-color.js -------------------------------------------------------------------------------- /js/engine/core/light.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/engine/core/light.js -------------------------------------------------------------------------------- /js/engine/core/materials.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/engine/core/materials.js -------------------------------------------------------------------------------- /js/engine/core/mesh.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/engine/core/mesh.js -------------------------------------------------------------------------------- /js/engine/core/render-world.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/engine/core/render-world.js -------------------------------------------------------------------------------- /js/engine/core/skin.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/engine/core/skin.js -------------------------------------------------------------------------------- /js/engine/core/skybox.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/engine/core/skybox.js -------------------------------------------------------------------------------- /js/engine/core/stage.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/engine/core/stage.js -------------------------------------------------------------------------------- /js/engine/core/transform.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/engine/core/transform.js -------------------------------------------------------------------------------- /js/engine/debug/bone-visualizer.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/engine/debug/bone-visualizer.js -------------------------------------------------------------------------------- /js/engine/debug/bounds-visualizer.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/engine/debug/bounds-visualizer.js -------------------------------------------------------------------------------- /js/engine/geometry/box.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/engine/geometry/box.js -------------------------------------------------------------------------------- /js/engine/geometry/sphere.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/engine/geometry/sphere.js -------------------------------------------------------------------------------- /js/engine/loaders/gltf.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/engine/loaders/gltf.js -------------------------------------------------------------------------------- /js/engine/loaders/lib/draco-worker.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/engine/loaders/lib/draco-worker.js -------------------------------------------------------------------------------- /js/engine/loaders/lib/gltf2-loader.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/engine/loaders/lib/gltf2-loader.js -------------------------------------------------------------------------------- /js/engine/util/texture-atlas-allocator.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/engine/util/texture-atlas-allocator.js -------------------------------------------------------------------------------- /js/engine/webgpu/materials/webgpu-material-factory.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/engine/webgpu/materials/webgpu-material-factory.js -------------------------------------------------------------------------------- /js/engine/webgpu/materials/webgpu-materials.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/engine/webgpu/materials/webgpu-materials.js -------------------------------------------------------------------------------- /js/engine/webgpu/materials/webgpu-pbr-material.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/engine/webgpu/materials/webgpu-pbr-material.js -------------------------------------------------------------------------------- /js/engine/webgpu/materials/webgpu-skybox-material.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/engine/webgpu/materials/webgpu-skybox-material.js -------------------------------------------------------------------------------- /js/engine/webgpu/materials/webgpu-unlit-material.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/engine/webgpu/materials/webgpu-unlit-material.js -------------------------------------------------------------------------------- /js/engine/webgpu/webgpu-bind-group-layouts.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/engine/webgpu/webgpu-bind-group-layouts.js -------------------------------------------------------------------------------- /js/engine/webgpu/webgpu-bloom.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/engine/webgpu/webgpu-bloom.js -------------------------------------------------------------------------------- /js/engine/webgpu/webgpu-buffer.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/engine/webgpu/webgpu-buffer.js -------------------------------------------------------------------------------- /js/engine/webgpu/webgpu-camera.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/engine/webgpu/webgpu-camera.js -------------------------------------------------------------------------------- /js/engine/webgpu/webgpu-clustered-light.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/engine/webgpu/webgpu-clustered-light.js -------------------------------------------------------------------------------- /js/engine/webgpu/webgpu-flags.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/engine/webgpu/webgpu-flags.js -------------------------------------------------------------------------------- /js/engine/webgpu/webgpu-light-sprite.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/engine/webgpu/webgpu-light-sprite.js -------------------------------------------------------------------------------- /js/engine/webgpu/webgpu-mesh.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/engine/webgpu/webgpu-mesh.js -------------------------------------------------------------------------------- /js/engine/webgpu/webgpu-render-batch.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/engine/webgpu/webgpu-render-batch.js -------------------------------------------------------------------------------- /js/engine/webgpu/webgpu-render-targets.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/engine/webgpu/webgpu-render-targets.js -------------------------------------------------------------------------------- /js/engine/webgpu/webgpu-renderer.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/engine/webgpu/webgpu-renderer.js -------------------------------------------------------------------------------- /js/engine/webgpu/webgpu-shadow.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/engine/webgpu/webgpu-shadow.js -------------------------------------------------------------------------------- /js/engine/webgpu/webgpu-system.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/engine/webgpu/webgpu-system.js -------------------------------------------------------------------------------- /js/engine/webgpu/webgpu-texture-debug.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/engine/webgpu/webgpu-texture-debug.js -------------------------------------------------------------------------------- /js/engine/webgpu/webgpu-world.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/engine/webgpu/webgpu-world.js -------------------------------------------------------------------------------- /js/engine/webgpu/wgsl/bloom.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/engine/webgpu/wgsl/bloom.js -------------------------------------------------------------------------------- /js/engine/webgpu/wgsl/clustered-light.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/engine/webgpu/wgsl/clustered-light.js -------------------------------------------------------------------------------- /js/engine/webgpu/wgsl/common.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/engine/webgpu/wgsl/common.js -------------------------------------------------------------------------------- /js/engine/webgpu/wgsl/default-vertex.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/engine/webgpu/wgsl/default-vertex.js -------------------------------------------------------------------------------- /js/engine/webgpu/wgsl/light-sprite.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/engine/webgpu/wgsl/light-sprite.js -------------------------------------------------------------------------------- /js/engine/webgpu/wgsl/pbr-material.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/engine/webgpu/wgsl/pbr-material.js -------------------------------------------------------------------------------- /js/engine/webgpu/wgsl/shadow.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/engine/webgpu/wgsl/shadow.js -------------------------------------------------------------------------------- /js/engine/webgpu/wgsl/skybox.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/engine/webgpu/wgsl/skybox.js -------------------------------------------------------------------------------- /js/engine/webgpu/wgsl/unlit-material.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/engine/webgpu/wgsl/unlit-material.js -------------------------------------------------------------------------------- /js/engine/webgpu/wgsl/wgsl-utils.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/engine/webgpu/wgsl/wgsl-utils.js -------------------------------------------------------------------------------- /js/html-display.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/html-display.js -------------------------------------------------------------------------------- /js/impact-damage.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/impact-damage.js -------------------------------------------------------------------------------- /js/lifetime.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/lifetime.js -------------------------------------------------------------------------------- /js/physics-2d-visualizer.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/physics-2d-visualizer.js -------------------------------------------------------------------------------- /js/physics-2d.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/physics-2d.js -------------------------------------------------------------------------------- /js/player.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/player.js -------------------------------------------------------------------------------- /js/query-args.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/query-args.js -------------------------------------------------------------------------------- /js/score.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/score.js -------------------------------------------------------------------------------- /js/spookyball.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/spookyball.js -------------------------------------------------------------------------------- /js/stage.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/js/stage.js -------------------------------------------------------------------------------- /media/images/icon-128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/media/images/icon-128.png -------------------------------------------------------------------------------- /media/images/icon-256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/media/images/icon-256.png -------------------------------------------------------------------------------- /media/images/icon-32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/media/images/icon-32.png -------------------------------------------------------------------------------- /media/images/icon-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/media/images/icon-512.png -------------------------------------------------------------------------------- /media/images/icon-96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/media/images/icon-96.png -------------------------------------------------------------------------------- /media/images/left-banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/media/images/left-banner.png -------------------------------------------------------------------------------- /media/images/right-banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/media/images/right-banner.png -------------------------------------------------------------------------------- /media/images/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/media/images/screenshot.png -------------------------------------------------------------------------------- /media/models/ball-compressed.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/media/models/ball-compressed.glb -------------------------------------------------------------------------------- /media/models/crow-compressed.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/media/models/crow-compressed.glb -------------------------------------------------------------------------------- /media/models/gltf-minify.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/media/models/gltf-minify.sh -------------------------------------------------------------------------------- /media/models/graveyard-compressed.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/media/models/graveyard-compressed.glb -------------------------------------------------------------------------------- /media/models/paddle-compressed.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/media/models/paddle-compressed.glb -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toji/spookyball/HEAD/package.json --------------------------------------------------------------------------------