{"_id":"@bojackduy/opentui-three-showcase","_rev":"7-764d7742390fafcf9cf3c6c1de228b91","name":"@bojackduy/opentui-three-showcase","dist-tags":{"latest":"1.1.2"},"versions":{"0.1.0":{"name":"@bojackduy/opentui-three-showcase","version":"0.1.0","keywords":["three","threejs","webgpu","opentui","terminal","tui","arcade","demo","showcase","3d"],"license":"AGPL-3.0-or-later","_id":"@bojackduy/opentui-three-showcase@0.1.0","maintainers":[{"name":"bojackduy","email":"trinhchanduybojack@gmail.com"}],"homepage":"https://github.com/bojackduy/opentui-three-showcase#readme","bugs":{"url":"https://github.com/bojackduy/opentui-three-showcase/issues"},"bin":{"opentui-three-showcase":"dist/index.js","three-terminal-showcase":"dist/index.js"},"dist":{"shasum":"d0afa277ee78e4c401f0ecb2a33daf886012488f","tarball":"https://registry.npmjs.org/@bojackduy/opentui-three-showcase/-/opentui-three-showcase-0.1.0.tgz","fileCount":6,"integrity":"sha512-UYoNanWLJU+u9BzHkLGLaCGyl7Jh6OgUQ9Oobr26xVcc+f3E/PxwC+DyWc4wOQWlazQPcLiqgS38FK+yo+058g==","signatures":[{"sig":"MEUCIE/L/Oyj3yFaFFe9YzF48/ZmqyTnyQwzUoBZGRHyYoZmAiEAkN6oLS0ZcP2ndlV/N+0AXwNh8Q4+BSWdO8ZzeH2yA9I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":379201},"type":"module","$schema":"https://json.schemastore.org/package.json","engines":{"bun":">=1.3.0"},"gitHead":"d89e7d4719d3332401563cb5d0a3f21aceb9af34","private":false,"scripts":{"dev":"bun src/index.ts","test":"echo \"no tests\" && exit 0","build":"bun build src/index.ts --target bun --outfile dist/index.js --external \"@opentui/core\" --external \"@opentui/core-*\" --external \"@opentui/three\" --external three --external bun-webgpu --external jimp","start":"bun src/index.ts","prepack":"bun run typecheck && bun run build","typecheck":"tsc --noEmit --skipLibCheck","release:major":"bun run typecheck && bun run build && npm version major -m \"chore: release %s\" && git push && git push origin $(git describe --tags --abbrev=0)","release:minor":"bun run typecheck && bun run build && npm version minor -m \"chore: release %s\" && git push && git push origin $(git describe --tags --abbrev=0)","release:patch":"bun run typecheck && bun run build && npm version patch -m \"chore: release %s\" && git push && git push origin $(git describe --tags --abbrev=0)"},"_npmUser":{"name":"bojackduy","email":"trinhchanduybojack@gmail.com"},"repository":{"url":"git+https://github.com/bojackduy/opentui-three-showcase.git","type":"git"},"_npmVersion":"12.0.2","description":"3D Terminal Arcade — neon 3x3 Three.js showcase rendered inside a terminal via OpenTUI and WebGPU","directories":{},"_nodeVersion":"26.5.1","dependencies":{"jimp":"^1.6.0","three":"0.177.0","bun-webgpu":"0.1.7","@opentui/core":"^0.5.10","@opentui/three":"^0.5.10"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.0","typescript":"^5.9.0","@types/three":"0.177.0"},"_npmOperationalInternal":{"tmp":"tmp/opentui-three-showcase_0.1.0_1788376770497_0.29472349624710215","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@bojackduy/opentui-three-showcase","version":"1.0.0","keywords":["three","threejs","webgpu","opentui","terminal","tui","arcade","demo","showcase","3d"],"license":"AGPL-3.0-or-later","_id":"@bojackduy/opentui-three-showcase@1.0.0","maintainers":[{"name":"bojackduy","email":"trinhchanduybojack@gmail.com"}],"homepage":"https://github.com/bojackduy/opentui-three-showcase#readme","bugs":{"url":"https://github.com/bojackduy/opentui-three-showcase/issues"},"bin":{"opentui-three-showcase":"dist/index.js","three-terminal-showcase":"dist/index.js"},"dist":{"shasum":"2ae35c12a5cb81384547f92fa55e57ae292a7bbc","tarball":"https://registry.npmjs.org/@bojackduy/opentui-three-showcase/-/opentui-three-showcase-1.0.0.tgz","fileCount":7,"integrity":"sha512-hGY+XCnJK/AvueLCmD9odgqUQkHMbr0ycdXEm8LeDwAeNA+eZRftwCsKLMM5K34tar/ufe6sH2+/nWSYksrNyg==","signatures":[{"sig":"MEUCIQC0UBEnL1hfoHalZlc0u0LmfIUegKXcoCKkaTYKoHVbPAIgdOSbB0OjNtv+17/WAfxXAs9ZvibpljVKy5NdCTfLoqc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bojackduy%2fopentui-three-showcase@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":571714},"type":"module","$schema":"https://json.schemastore.org/package.json","engines":{"bun":">=1.3.0"},"gitHead":"77d6e7c6cd31d3bf0f07d2c7b468fafd2111096e","private":false,"scripts":{"dev":"bun src/index.ts","test":"echo \"no tests\" && exit 0","build":"bun build src/index.ts --target bun --outfile dist/index.js --external \"@opentui/core\" --external \"@opentui/core-*\" --external \"@opentui/three\" --external three --external bun-webgpu --external jimp","start":"bun src/index.ts","prepack":"bun run typecheck && bun run build","typecheck":"tsc --noEmit --skipLibCheck","release:major":"bun run typecheck && bun run build && npm version major -m \"chore: release %s\" && git push && git push origin $(git describe --tags --abbrev=0)","release:minor":"bun run typecheck && bun run build && npm version minor -m \"chore: release %s\" && git push && git push origin $(git describe --tags --abbrev=0)","release:patch":"bun run typecheck && bun run build && npm version patch -m \"chore: release %s\" && git push && git push origin $(git describe --tags --abbrev=0)"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7513e400-045d-4c59-b058-16505c77f84d"}},"repository":{"url":"git+https://github.com/bojackduy/opentui-three-showcase.git","type":"git"},"_npmVersion":"11.17.0","description":"3D Terminal Arcade — neon 3x3 Three.js showcase rendered inside a terminal via OpenTUI and WebGPU","directories":{},"_nodeVersion":"24.19.0","dependencies":{"jimp":"^1.6.0","three":"0.177.0","bun-webgpu":"0.1.7","@opentui/core":"^0.5.10","@opentui/three":"^0.5.10"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.0","typescript":"^5.9.0","@types/three":"0.177.0"},"_npmOperationalInternal":{"tmp":"tmp/opentui-three-showcase_1.0.0_1788377579022_0.7451540305675355","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@bojackduy/opentui-three-showcase","version":"1.0.1","keywords":["three","threejs","webgpu","opentui","terminal","tui","arcade","demo","showcase","3d"],"license":"AGPL-3.0-or-later","_id":"@bojackduy/opentui-three-showcase@1.0.1","maintainers":[{"name":"bojackduy","email":"trinhchanduybojack@gmail.com"}],"homepage":"https://github.com/bojackduy/opentui-three-showcase#readme","bugs":{"url":"https://github.com/bojackduy/opentui-three-showcase/issues"},"bin":{"opentui-three-showcase":"dist/index.js","three-terminal-showcase":"dist/index.js"},"dist":{"shasum":"b490a0bf914ba2cfacdc6d9e0cc716dabef077ec","tarball":"https://registry.npmjs.org/@bojackduy/opentui-three-showcase/-/opentui-three-showcase-1.0.1.tgz","fileCount":8,"integrity":"sha512-+g1x9g9g8hEx51NJkFYEbPydR5diiU5sTpn0LZ6LdzTgpsToiGOzpX4XPYnkayD+DX1a+XQPYLPFzRSK/X65Xw==","signatures":[{"sig":"MEQCIAwaXvI1CsNX4nyH7ps+pjSNzKoAZMU30TD1bBny9GPFAiBP6Hl03+o/c3bgd9d7ORDfZYVxWydFAvgxQyLo+pYJNg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bojackduy%2fopentui-three-showcase@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":6951098},"type":"module","$schema":"https://json.schemastore.org/package.json","engines":{"bun":">=1.3.0"},"gitHead":"07f145421f696fa4a5575a88579b6c96ff0e50c2","private":false,"scripts":{"dev":"bun src/index.ts","test":"echo \"no tests\" && exit 0","build":"bun build src/index.ts --target bun --outfile dist/index.js --external \"@opentui/core\" --external \"@opentui/core-*\" --external \"@opentui/three\" --external three --external bun-webgpu --external jimp","start":"bun src/index.ts","prepack":"bun run typecheck && bun run build","typecheck":"tsc --noEmit --skipLibCheck","release:major":"bun run typecheck && bun run build && npm version major -m \"chore: release %s\" && git push && git push origin $(git describe --tags --abbrev=0)","release:minor":"bun run typecheck && bun run build && npm version minor -m \"chore: release %s\" && git push && git push origin $(git describe --tags --abbrev=0)","release:patch":"bun run typecheck && bun run build && npm version patch -m \"chore: release %s\" && git push && git push origin $(git describe --tags --abbrev=0)"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7513e400-045d-4c59-b058-16505c77f84d"}},"repository":{"url":"git+https://github.com/bojackduy/opentui-three-showcase.git","type":"git"},"_npmVersion":"11.19.0","description":"3D Terminal Arcade — neon 3x3 Three.js showcase rendered inside a terminal via OpenTUI and WebGPU","directories":{},"_nodeVersion":"24.20.0","dependencies":{"jimp":"^1.6.0","three":"0.177.0","bun-webgpu":"0.1.7","@opentui/core":"^0.5.10","@opentui/three":"^0.5.10"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.0","typescript":"^5.9.0","@types/three":"0.177.0"},"_npmOperationalInternal":{"tmp":"tmp/opentui-three-showcase_1.0.1_1788379077363_0.029957430008868968","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@bojackduy/opentui-three-showcase","version":"1.0.2","keywords":["three","threejs","webgpu","opentui","terminal","tui","arcade","demo","showcase","3d"],"license":"AGPL-3.0-or-later","_id":"@bojackduy/opentui-three-showcase@1.0.2","maintainers":[{"name":"bojackduy","email":"trinhchanduybojack@gmail.com"}],"homepage":"https://github.com/bojackduy/opentui-three-showcase#readme","bugs":{"url":"https://github.com/bojackduy/opentui-three-showcase/issues"},"bin":{"opentui-three-showcase":"dist/index.js","three-terminal-showcase":"dist/index.js"},"dist":{"shasum":"d67a37d23ccf9c2e4d39832ce6ce5b8a3e8375ee","tarball":"https://registry.npmjs.org/@bojackduy/opentui-three-showcase/-/opentui-three-showcase-1.0.2.tgz","fileCount":8,"integrity":"sha512-GxGQ8EyJOxnl8BkxOsAX70L7eDz9SJqiTDt0wIOhhCffmzIh5UB9Bq7mKQx2fX6/suV/70PwI4MFjnrE6+yxxQ==","signatures":[{"sig":"MEYCIQCYrTPADPMYQ2FwOfn/69fJOjen4YPrtqVpvdZMiJDaMwIhAK31KANUTnoSl/46wmzwWLMmOus1aAvUvMOduohdGqHE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bojackduy%2fopentui-three-showcase@1.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":6952170},"type":"module","$schema":"https://json.schemastore.org/package.json","engines":{"bun":">=1.3.0"},"gitHead":"c412f5f3c94d5722f261c1095ad23aa5dc070c53","private":false,"scripts":{"dev":"bun src/index.ts","test":"echo \"no tests\" && exit 0","build":"bun build src/index.ts --target bun --outfile dist/index.js --external \"@opentui/core\" --external \"@opentui/core-*\" --external \"@opentui/three\" --external three --external bun-webgpu --external jimp","start":"bun src/index.ts","prepack":"bun run typecheck && bun run build","typecheck":"tsc --noEmit --skipLibCheck","release:major":"bun run typecheck && bun run build && npm version major -m \"chore: release %s\" && git push && git push origin $(git describe --tags --abbrev=0)","release:minor":"bun run typecheck && bun run build && npm version minor -m \"chore: release %s\" && git push && git push origin $(git describe --tags --abbrev=0)","release:patch":"bun run typecheck && bun run build && npm version patch -m \"chore: release %s\" && git push && git push origin $(git describe --tags --abbrev=0)"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7513e400-045d-4c59-b058-16505c77f84d"}},"repository":{"url":"git+https://github.com/bojackduy/opentui-three-showcase.git","type":"git"},"_npmVersion":"11.19.0","description":"3D Terminal Arcade — neon 3x3 Three.js showcase rendered inside a terminal via OpenTUI and WebGPU","directories":{},"_nodeVersion":"24.20.0","dependencies":{"jimp":"^1.6.0","three":"0.177.0","bun-webgpu":"0.1.7","@opentui/core":"^0.5.10","@opentui/three":"^0.5.10"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.0","typescript":"^5.9.0","@types/three":"0.177.0"},"_npmOperationalInternal":{"tmp":"tmp/opentui-three-showcase_1.0.2_1788407917167_0.2723558045545966","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@bojackduy/opentui-three-showcase","version":"1.1.0","keywords":["three","threejs","webgpu","opentui","terminal","tui","arcade","demo","showcase","3d"],"license":"AGPL-3.0-or-later","_id":"@bojackduy/opentui-three-showcase@1.1.0","maintainers":[{"name":"bojackduy","email":"trinhchanduybojack@gmail.com"}],"homepage":"https://github.com/bojackduy/opentui-three-showcase#readme","bugs":{"url":"https://github.com/bojackduy/opentui-three-showcase/issues"},"bin":{"opentui-three-showcase":"dist/index.js","three-terminal-showcase":"dist/index.js"},"dist":{"shasum":"d8072a29194cdc46584f77d8e86130164516c355","tarball":"https://registry.npmjs.org/@bojackduy/opentui-three-showcase/-/opentui-three-showcase-1.1.0.tgz","fileCount":8,"integrity":"sha512-VgJ0VO5KcN62kBBtJR+ZyEQff7ONrI27Krw6BJK4S51jGMsZVb1dvv6m9kbgBgouq2SAIOggKHdRwoUFN1hyBA==","signatures":[{"sig":"MEUCIQCChn5rFgpvd0YTpERD6pf/NWyj85XhUZRPCx/05F+y+gIgXe8s02zMb2iZmx8H+X+nivZWnN9EVXIRzMZYuhMg1DQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bojackduy%2fopentui-three-showcase@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5846240},"type":"module","$schema":"https://json.schemastore.org/package.json","engines":{"bun":">=1.3.0"},"gitHead":"c29ce6488c109ee7692635f56c055adf7b1cfe91","private":false,"scripts":{"dev":"bun src/index.ts","test":"echo \"no tests\" && exit 0","build":"bun build src/index.ts --target bun --outfile dist/index.js --external \"@opentui/core\" --external \"@opentui/core-*\" --external \"@opentui/three\" --external three --external bun-webgpu --external jimp","start":"bun src/index.ts","prepack":"bun run typecheck && bun run build","typecheck":"tsc --noEmit --skipLibCheck","release:major":"bun run typecheck && bun run build && npm version major -m \"chore: release %s\" && git push && git push origin $(git describe --tags --abbrev=0)","release:minor":"bun run typecheck && bun run build && npm version minor -m \"chore: release %s\" && git push && git push origin $(git describe --tags --abbrev=0)","release:patch":"bun run typecheck && bun run build && npm version patch -m \"chore: release %s\" && git push && git push origin $(git describe --tags --abbrev=0)"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7513e400-045d-4c59-b058-16505c77f84d"}},"repository":{"url":"git+https://github.com/bojackduy/opentui-three-showcase.git","type":"git"},"_npmVersion":"11.19.0","description":"3D Terminal Arcade — neon 3x3 Three.js showcase rendered inside a terminal via OpenTUI and WebGPU","directories":{},"_nodeVersion":"24.20.0","dependencies":{"jimp":"^1.6.0","three":"0.177.0","bun-webgpu":"0.1.7","@opentui/core":"^0.5.10","@opentui/three":"^0.5.10"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.0","typescript":"^5.9.0","@types/three":"0.177.0"},"_npmOperationalInternal":{"tmp":"tmp/opentui-three-showcase_1.1.0_1788423564562_0.21233394361811198","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@bojackduy/opentui-three-showcase","version":"1.1.1","keywords":["three","threejs","webgpu","opentui","terminal","tui","arcade","demo","showcase","3d"],"license":"AGPL-3.0-or-later","_id":"@bojackduy/opentui-three-showcase@1.1.1","maintainers":[{"name":"bojackduy","email":"trinhchanduybojack@gmail.com"}],"homepage":"https://github.com/bojackduy/opentui-three-showcase#readme","bugs":{"url":"https://github.com/bojackduy/opentui-three-showcase/issues"},"bin":{"opentui-three-showcase":"dist/index.js","three-terminal-showcase":"dist/index.js"},"dist":{"shasum":"bc7dc7ea00c7bb2f5635985ada46785a2443baf4","tarball":"https://registry.npmjs.org/@bojackduy/opentui-three-showcase/-/opentui-three-showcase-1.1.1.tgz","fileCount":8,"integrity":"sha512-B7QBTPsMCUnFFVR5jIUz9bUMmAxcHa35csn4X7dJZs1G657piN3v4RlSdQrGaZA4QCkNOhipAqeNFz5LXPuwjw==","signatures":[{"sig":"MEUCIAdNG/7qWt4t3VOTl4NZ0OUg3JWdH3EVLIBB+GPWj1iKAiEAyjm4+oEe4+UyGndo9dGubLEGEZlDskum6xFmAg2/Myg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bojackduy%2fopentui-three-showcase@1.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5849875},"type":"module","$schema":"https://json.schemastore.org/package.json","engines":{"bun":">=1.3.0"},"gitHead":"35640a943ed6455a89d43ca94f4fdeb705885277","private":false,"scripts":{"dev":"bun src/index.ts","test":"echo \"no tests\" && exit 0","build":"bun build src/index.ts --target bun --outfile dist/index.js --external \"@opentui/core\" --external \"@opentui/core-*\" --external \"@opentui/three\" --external three --external bun-webgpu --external jimp","start":"bun src/index.ts","dev:low":"bun src/index.ts --low","dev:max":"bun src/index.ts --max","prepack":"bun run typecheck && bun run build","typecheck":"tsc --noEmit --skipLibCheck","release:major":"bun run typecheck && bun run build && npm version major -m \"chore: release %s\" && git push && git push origin $(git describe --tags --abbrev=0)","release:minor":"bun run typecheck && bun run build && npm version minor -m \"chore: release %s\" && git push && git push origin $(git describe --tags --abbrev=0)","release:patch":"bun run typecheck && bun run build && npm version patch -m \"chore: release %s\" && git push && git push origin $(git describe --tags --abbrev=0)"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7513e400-045d-4c59-b058-16505c77f84d"}},"repository":{"url":"git+https://github.com/bojackduy/opentui-three-showcase.git","type":"git"},"_npmVersion":"11.17.0","description":"3D Terminal Arcade — neon 3x3 Three.js showcase rendered inside a terminal via OpenTUI and WebGPU","directories":{},"_nodeVersion":"24.19.0","dependencies":{"jimp":"^1.6.0","three":"0.177.0","bun-webgpu":"0.1.7","@opentui/core":"^0.5.10","@opentui/three":"^0.5.10"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.0","typescript":"^5.9.0","@types/three":"0.177.0"},"_npmOperationalInternal":{"tmp":"tmp/opentui-three-showcase_1.1.1_1788431967437_0.04558614100621061","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"$schema":"https://json.schemastore.org/package.json","name":"@bojackduy/opentui-three-showcase","version":"1.1.2","description":"3D Terminal Arcade — neon 3x3 Three.js showcase rendered inside a terminal via OpenTUI and WebGPU","type":"module","license":"AGPL-3.0-or-later","private":false,"repository":{"type":"git","url":"git+https://github.com/bojackduy/opentui-three-showcase.git"},"homepage":"https://github.com/bojackduy/opentui-three-showcase#readme","bugs":{"url":"https://github.com/bojackduy/opentui-three-showcase/issues"},"keywords":["three","threejs","webgpu","opentui","terminal","tui","arcade","demo","showcase","3d"],"bin":{"opentui-three-showcase":"dist/index.js","three-terminal-showcase":"dist/index.js"},"publishConfig":{"access":"public","provenance":true},"engines":{"bun":">=1.3.0"},"dependencies":{"@opentui/core":"^0.5.10","@opentui/three":"^0.5.10","bun-webgpu":"0.1.7","jimp":"^1.6.0","three":"0.177.0"},"devDependencies":{"@types/bun":"^1.3.0","@types/three":"0.177.0","typescript":"^5.9.0"},"scripts":{"dev":"bun src/index.ts","dev:low":"bun src/index.ts --low","dev:max":"bun src/index.ts --max","start":"bun src/index.ts","typecheck":"tsc --noEmit --skipLibCheck","build":"bun build src/index.ts --target bun --outfile dist/index.js --external \"@opentui/core\" --external \"@opentui/core-*\" --external \"@opentui/three\" --external three --external bun-webgpu --external jimp","prepack":"bun run typecheck && bun run build","test":"echo \"no tests\" && exit 0","release:patch":"bun run typecheck && bun run build && npm version patch -m \"chore: release %s\" && git push && git push origin $(git describe --tags --abbrev=0)","release:minor":"bun run typecheck && bun run build && npm version minor -m \"chore: release %s\" && git push && git push origin $(git describe --tags --abbrev=0)","release:major":"bun run typecheck && bun run build && npm version major -m \"chore: release %s\" && git push && git push origin $(git describe --tags --abbrev=0)"},"gitHead":"44c9b59e451db402cabb75e3d62a5e63243df5ca","_id":"@bojackduy/opentui-three-showcase@1.1.2","_nodeVersion":"24.19.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-zRCz9Lxe4PI9v0FOuJoEyCROXC9I4Qjm5w4gla1qvjTjvU8eEf0rjZgHQFTzsONEKX3YS4wq8nkaduuYiy6qdQ==","shasum":"bf8e9fe29d167c6a0d23284fce53497d5f06e062","tarball":"https://registry.npmjs.org/@bojackduy/opentui-three-showcase/-/opentui-three-showcase-1.1.2.tgz","fileCount":8,"unpackedSize":5852002,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bojackduy%2fopentui-three-showcase@1.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIA2WmISgblLK878SioZoIZrZZpnIupxhV2g8Be8h5ecpAiEAwa0cpdNkKUdQIy40ivqwKeoofpYfnQbHAUqvNCcicQI="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7513e400-045d-4c59-b058-16505c77f84d"}},"directories":{},"maintainers":[{"name":"bojackduy","email":"trinhchanduybojack@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/opentui-three-showcase_1.1.2_1788432501622_0.8252775747393251"},"_hasShrinkwrap":false}},"time":{"created":"2026-09-02T19:19:28.864Z","modified":"2026-09-03T10:48:22.242Z","0.1.0":"2026-09-02T19:19:30.658Z","1.0.0":"2026-09-02T19:32:59.169Z","1.0.1":"2026-09-02T19:57:57.630Z","1.0.2":"2026-09-03T03:58:37.557Z","1.1.0":"2026-09-03T08:19:24.853Z","1.1.1":"2026-09-03T10:39:27.738Z","1.1.2":"2026-09-03T10:48:21.911Z"},"bugs":{"url":"https://github.com/bojackduy/opentui-three-showcase/issues"},"license":"AGPL-3.0-or-later","homepage":"https://github.com/bojackduy/opentui-three-showcase#readme","keywords":["three","threejs","webgpu","opentui","terminal","tui","arcade","demo","showcase","3d"],"repository":{"type":"git","url":"git+https://github.com/bojackduy/opentui-three-showcase.git"},"description":"3D Terminal Arcade — neon 3x3 Three.js showcase rendered inside a terminal via OpenTUI and WebGPU","maintainers":[{"name":"bojackduy","email":"trinhchanduybojack@gmail.com"}],"readme":"# 3D Terminal Arcade\n\n> A neon 3×3 arcade wall rendered with **real Three.js geometry**, perspective projection, and WebGPU lighting — directly inside a terminal framebuffer via [OpenTUI](https://github.com/anomalyco/opencode).\n\n![Demo](assets/demo.jpeg)\n\n![Demo GIF](assets/demo2.gif)\n\n`src/index.ts` builds a `THREE.Scene` with a perspective camera, Phong-shaded meshes (TorusKnot, Dodecahedron, Torus, Box, Icosahedron, and more in MAX), a checkerboard depth plane, and up to 6 lights (Ambient + Directionals + orbiting PointLights). Everything is rasterized by `ThreeCliRenderer` into a `FrameBufferRenderable` and converted to terminal glyphs. Yes, it's definitely 3D.\n\n## Features\n\n- **True 3D in the terminal** — `PerspectiveCamera` + depth, not ASCII tricks\n- **WebGPU via `bun-webgpu`** — `ThreeCliRenderer.init()` awaited explicitly with fallback to `TextRenderable` on failure\n- **Animated objects** — distinct `MeshPhongMaterial` per mesh (high `shininess`, white specular), auto-rotating + bobbing, with an orbiting point light\n- **Quality profiles** — `LOW` / `BALANCED` / `MAX` (see below); `MAX` adds 16 objects, 120 FPS, ACES tone mapping, PCF soft shadows\n- **Supersampling** — `U` cycles `NONE → CPU 2× → GPU 2× → ULTRA` (ULTRA needs the local `opentui` fork); `O` toggles `STANDARD ↔ PRE_SQUEEZED`\n- **Adaptive small terminals** — wall scale, camera distance, and FOV shrink automatically below the `80×24` design target so the whole wall stays framed\n- **Responsive** — adapts to terminal resizes via `engine.setSize` + `camera.aspect = engine.aspectRatio`\n- **PNG export** — captures the WebGPU scene _before_ glyph conversion (`P` → `screenshots/`)\n\n## Quality Profiles\n\n| Profile    | FPS | Supersample | Shadows | Tone mapping               | Lights | Meshes     | Tessellation |\n| ---------- | --- | ----------- | ------- | -------------------------- | ------ | ---------- | ------------ |\n| `LOW`      | 30  | `NONE` 1×   | off     | `NoToneMapping` + Linear   | 2      | 5          | low          |\n| `BALANCED` | 60  | `GPU` 2×    | on      | `ACESFilmic` 1.05 + sRGB   | 6      | 9          | medium       |\n| `MAX`      | 120 | `GPU` 2×    | on      | `ACESFilmic` 1.18 + sRGB   | 6      | 16 + fog   | ultra        |\n\nSelect at startup (full effect, including geometry):\n\n```sh\nbun run dev:low        # weak iGPU — SS NONE, no shadows, 2 lights, 5 meshes, 30 FPS\nbun run dev            # balanced default (60 FPS, 9 objects)\nbun run dev:max        # M3 Pro — 16 objects, 120 FPS, ACES, shadows\n```\n\nEquivalents: `bun src/index.ts --low` / `--quality=low|balanced|max`, or env `ARCADE_QUALITY=low` / `LOW_POWER=1`.\n\nPress `M` while running to cycle `LOW → BALANCED → MAX` live (SS / FPS / shadows / tone mapping / light visibility switch immediately; mesh count and tessellation from startup are kept, hidden extras are toggled by visibility — restart with the flag for the full geometry swap).\n\n## Tech Stack\n\n| Package          | Version   | Role                                                  |\n| ---------------- | --------- | ----------------------------------------------------- |\n| `three`          | `0.177.0` | Scene, camera, geometries, `MeshPhongMaterial`        |\n| `@opentui/core`  | `^0.5.10` | `CliRenderer`, `FrameBufferRenderable`, input         |\n| `@opentui/three` | `^0.5.10` | `ThreeCliRenderer`, `SuperSampleType`, `TextureUtils` |\n| `bun-webgpu`     | `0.1.7`   | WebGPU binding for Bun                                |\n| `jimp`           | `^1.6.0`  | PNG save via `engine.saveToFile()`                    |\n\n## Requirements\n\n- **Bun >= 1.3**\n- **WebGPU-capable system** (macOS Metal, Windows DirectX 12, or Linux Vulkan)\n- **True-color terminal** (Ghostty, Kitty, iTerm2, WezTerm, etc.)\n\n> No WebGPU? The app shows a fallback message instead of a black screen (`src/index.ts:141-146`).\n\n## Quick Start\n\n```sh\nbun install\nbun run dev   # alias for bun src/index.ts\n```\n\nOther scripts:\n\n```sh\nbun run dev:low    # LOW profile (weak iGPU)\nbun run dev:max    # MAX profile (M3 Pro)\nbun run typecheck  # tsc --noEmit --skipLibCheck\nbun run build      # bun build → dist/index.js\n```\n\n## Controls\n\n| Key                   | Action                                              |\n| --------------------- | --------------------------------------------------- |\n| `W` / `S` / `↑` / `↓` | Move camera up / down                               |\n| `A` / `D` / `←` / `→` | Orbit yaw −/+ 0.18 rad (primary)                    |\n| `Q` / `E`             | Orbit yaw −/+ 0.12 rad (fine)                       |\n| `Z` / `X`             | Dolly in / out                                      |\n| `Space`               | Pause / resume animation                            |\n| `R`                   | Reset camera                                        |\n| `U`                   | Cycle supersampling (`NONE → CPU → GPU → ULTRA`)    |\n| `O`                   | Toggle supersample algorithm (`STANDARD ↔ PRE_SQUEEZED`) |\n| `M`                   | Cycle quality (`LOW → BALANCED → MAX`)              |\n| `Shift+D`             | Toggle WebGPU render stats (Render / Readback / SS ms) |\n| `P`                   | Save PNG to `screenshots/arcade-max-<timestamp>.png` |\n| `Esc` / `Ctrl+C`      | Exit                                                |\n\nStatus bar shows `LIVE / PAUSED | <OBJECTS> | <term> → <render> | <quality> | <SS mode>` and controls are pinned to the bottom row. On laggy machines: switch to `LOW` (or press `M`) and check `Shift+D` — `Total Draw` should stay under ~25 ms; shrinking the terminal also halves the render pixels.\n\n## Screenshot\n\nPress `P` while running. Output is written via `engine.saveToFile()` to the local `screenshots/` directory (gitignored). The PNG captures the raw WebGPU framebuffer — Phong highlights, depth, and lighting — before terminal glyph conversion.\n\n## How It Works\n\n```\nCliRenderer (full-terminal, 30/60/120 FPS by profile)\n  ├─ TextRenderable: title / status / controls (zIndex 30)\n  └─ FrameBufferRenderable (zIndex 10, full width/height)\n       └─ ThreeCliRenderer.drawScene(scene, frameBuffer, delta)\n            ├─ Scene: background #030014, checkerboard floor (128/256/512 by profile)\n            ├─ Camera: PerspectiveCamera 55-72° (widens on tiny terminals), at (0,2,6)\n            ├─ Lights: Ambient + Directionals + up to 3 orbiting PointLights (2 in LOW)\n            └─ Meshes: 5/9/16 × MeshPhongMaterial, auto-rotating + bobbing + auto-orbit\n```\n\n- **Explicit engine path**: `new ThreeCliRenderer(...)` with `autoResize: false` and `focalLength: 8` — size is driven manually on resize for correct aspect (`camera.aspect = engine.aspectRatio`).\n- **Animation loop**: `renderer.setFrameCallback` drives rotation, vertical bob, point-light orbits, and auto-yaw (slower in LOW so input stays responsive).\n- **De-noised supersampling**: quadrant blocks whose 4 texels are close (`maxDist < 0.02`) collapse to a single averaged solid instead of dithering — kills the black/grey speckles inside smooth specular gradients. Patched in the local `opentui` fork (`packages/three/src/shaders/supersampling.wgsl`, `packages/native/src/buffer.zig` for the CPU path).\n- **ULTRA mode**: the local fork adds `SuperSampleType.ULTRA` (`packages/three/src/WGPURenderer.ts`, `canvas.ts`) — toggle with `U`. Stock `@opentui/three` has only `NONE/CPU/GPU`.\n- **Cleanup**: `destroy()` disposes geometries/materials/textures and removes the framebuffer.\n\n## Project Structure\n\n```\nthree-terminal-showcase/\n├── src/index.ts        # All scene, renderer, input, and lifecycle logic\n├── assets/demo.png     # Demo screenshot (used in this README)\n├── screenshots/        # Runtime PNG exports (gitignored)\n├── package.json        # Bun + WebGPU + Three.js deps\n└── tsconfig.json       # ESNext / bundler / strict\n```\n\n## License\n\nAGPL-3.0-or-later — see [LICENSE](LICENSE).\n","readmeFilename":"README.md"}