{"_id":"@benjadiazp/procedural-art","_rev":"6-d2e8bbe8be7aa83a5f03bef1042c13a7","name":"@benjadiazp/procedural-art","dist-tags":{"latest":"0.1.8"},"versions":{"0.1.0":{"name":"@benjadiazp/procedural-art","version":"0.1.0","_id":"@benjadiazp/procedural-art@0.1.0","maintainers":[{"name":"benjadiazp","email":"elbenjadiazp@gmail.com"}],"dist":{"shasum":"61ae2801f1ef1e1cff276726d527a01a122b7bc2","tarball":"https://registry.npmjs.org/@benjadiazp/procedural-art/-/procedural-art-0.1.0.tgz","fileCount":10,"integrity":"sha512-sRw9CEAPBvC+W2WugRPsfxF8ECPzA9nLW7kTYYOCU/0TT4rAIvykbqzNLijAFuFQRBraxK0m9S9mo6XgkLcNCA==","signatures":[{"sig":"MEUCIQDxiiY95FgPEsp0kla7IEZVOyDVgDA5jshpZfbIeseFFwIgbpkJZqsurUTKikadFlakU7J3oQcu/FSHwaE5qB7rCdQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":103302},"main":"./dist/procedural-art.js","type":"module","types":"./dist/lib.d.ts","module":"./dist/procedural-art.js","shasum":"61ae2801f1ef1e1cff276726d527a01a122b7bc2","exports":{".":{"types":"./dist/lib.d.ts","import":"./dist/procedural-art.js"}},"scripts":{"dev":"vite","test":"bunx playwright test --reporter=list","build":"tsc && vite build","preview":"vite preview","build:lib":"BUILD_LIB=true vite build && tsc -p tsconfig.lib.json","test:headed":"bunx playwright test --headed"},"_npmUser":{"name":"benjadiazp","email":"elbenjadiazp@gmail.com"},"_integrity":"sha512-sRw9CEAPBvC+W2WugRPsfxF8ECPzA9nLW7kTYYOCU/0TT4rAIvykbqzNLijAFuFQRBraxK0m9S9mo6XgkLcNCA==","_npmVersion":"10.8.3","description":"GPU-accelerated procedural art simulations built with Three.js","directories":{},"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.1","three":"^0.183.2","lil-gui":"^0.21.0","puppeteer":"^24.40.0","typescript":"~5.9.3","@types/three":"^0.183.1","postprocessing":"^6.39.0","@playwright/test":"^1.59.1"},"peerDependencies":{"three":">=0.160.0","lil-gui":">=0.19.0","postprocessing":">=6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/procedural-art_0.1.0_1775532946211_0.2635257824507995","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@benjadiazp/procedural-art","version":"0.1.2","license":"MIT","_id":"@benjadiazp/procedural-art@0.1.2","maintainers":[{"name":"benjadiazp","email":"elbenjadiazp@gmail.com"}],"dist":{"shasum":"68b9a391fdc01aa3450e9179cff2c01c54305af2","tarball":"https://registry.npmjs.org/@benjadiazp/procedural-art/-/procedural-art-0.1.2.tgz","fileCount":12,"integrity":"sha512-5UfRBmCc4hTafZEdWk7iOGYRzcYzWPWgetZsCnND5d2Aaexre+RxlXzs/cUlMMMPW07uV6o0vZ6VmAKiADs6zg==","signatures":[{"sig":"MEYCIQDOfoe9FtN5W9HjsVk+hITjzHj85kqkxK+W8+EkxqJG9QIhAOeH6WcAMRDWkdsczVBMyK8icY/BYRWLuwPHBbjhj2OI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":106009},"main":"./dist/procedural-art.js","type":"module","types":"./dist/lib.d.ts","module":"./dist/procedural-art.js","shasum":"68b9a391fdc01aa3450e9179cff2c01c54305af2","exports":{".":{"types":"./dist/lib.d.ts","import":"./dist/procedural-art.js"}},"scripts":{"dev":"vite","test":"bunx playwright test --reporter=list","build":"tsc && vite build","preview":"vite preview","release":"bun run build:lib && git push && git tag v$(node -p \"require('./package.json').version\") && git push --tags","build:lib":"BUILD_LIB=true vite build && tsc -p tsconfig.lib.json","test:headed":"bunx playwright test --headed"},"_npmUser":{"name":"benjadiazp","email":"elbenjadiazp@gmail.com"},"_integrity":"sha512-5UfRBmCc4hTafZEdWk7iOGYRzcYzWPWgetZsCnND5d2Aaexre+RxlXzs/cUlMMMPW07uV6o0vZ6VmAKiADs6zg==","_npmVersion":"10.8.3","description":"GPU-accelerated procedural art simulations built with Three.js","directories":{},"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.1","three":"^0.183.2","lil-gui":"^0.21.0","puppeteer":"^24.40.0","typescript":"~5.9.3","@types/three":"^0.183.1","postprocessing":"^6.39.0","@playwright/test":"^1.59.1"},"peerDependencies":{"three":">=0.160.0","lil-gui":">=0.19.0","postprocessing":">=6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/procedural-art_0.1.2_1775535466306_0.7482951922874244","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@benjadiazp/procedural-art","version":"0.1.3","license":"MIT","_id":"@benjadiazp/procedural-art@0.1.3","maintainers":[{"name":"benjadiazp","email":"elbenjadiazp@gmail.com"}],"dist":{"shasum":"7e38520f0ff037bd0ede202b26c7f0b55a5bd161","tarball":"https://registry.npmjs.org/@benjadiazp/procedural-art/-/procedural-art-0.1.3.tgz","fileCount":12,"integrity":"sha512-E3KFSMax/pzCugwMAA0oFnYWYorjvP42lt34iCrb6e6tTjMc04jAM4ktC7ZLfD6Gjs71WuUBiCZPUb/0+ZvP9Q==","signatures":[{"sig":"MEUCIQDiPBUXuWe7kpAoEWJcAZCTRgueK2xGMixYS4xf5PNEGwIgOQJTU+D7uXMBg4k2dOs7aaNb5i36xeTCkOVsyV7ZjUU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":105980},"main":"./dist/procedural-art.js","type":"module","types":"./dist/lib.d.ts","module":"./dist/procedural-art.js","shasum":"7e38520f0ff037bd0ede202b26c7f0b55a5bd161","exports":{".":{"types":"./dist/lib.d.ts","import":"./dist/procedural-art.js"}},"scripts":{"dev":"vite","test":"bunx playwright test --reporter=list","build":"tsc && vite build","preview":"vite preview","release":"bun run build:lib && git push && git tag v$(node -p \"require('./package.json').version\") && git push --tags","build:lib":"BUILD_LIB=true vite build && tsc -p tsconfig.lib.json","test:headed":"bunx playwright test --headed"},"_npmUser":{"name":"benjadiazp","email":"elbenjadiazp@gmail.com"},"_integrity":"sha512-E3KFSMax/pzCugwMAA0oFnYWYorjvP42lt34iCrb6e6tTjMc04jAM4ktC7ZLfD6Gjs71WuUBiCZPUb/0+ZvP9Q==","_npmVersion":"10.8.3","description":"GPU-accelerated procedural art simulations built with Three.js","directories":{},"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.1","three":"^0.183.2","lil-gui":"^0.21.0","puppeteer":"^24.40.0","typescript":"~5.9.3","@types/three":"^0.183.1","postprocessing":"^6.39.0","@playwright/test":"^1.59.1"},"peerDependencies":{"three":">=0.160.0","lil-gui":">=0.19.0","postprocessing":">=6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/procedural-art_0.1.3_1775535600277_0.23843480345535606","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@benjadiazp/procedural-art","version":"0.1.6","license":"MIT","_id":"@benjadiazp/procedural-art@0.1.6","maintainers":[{"name":"benjadiazp","email":"elbenjadiazp@gmail.com"}],"homepage":"https://github.com/benjadiazp/procedural-art#readme","bugs":{"url":"https://github.com/benjadiazp/procedural-art/issues"},"dist":{"shasum":"315f863654089b9bf5526d36bc12abc59a4a2b9f","tarball":"https://registry.npmjs.org/@benjadiazp/procedural-art/-/procedural-art-0.1.6.tgz","fileCount":12,"integrity":"sha512-oGM6QGxroc5PgVMMEC2Dy2Gm2B10QnmJCxiuAROLNDnXr1AFo0uqhFL1usXIno4aKEm3vWF0utcxurUnQch93w==","signatures":[{"sig":"MEUCIE/D74OjjzyqkuP7hZLrfCxsLJidEl897r7UxYv8jjh1AiEAxMA0iK4l54WIi9+5nuq0SbYw3y2oLM2dszPuInCM8VY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@benjadiazp%2fprocedural-art@0.1.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":106237},"main":"./dist/procedural-art.js","type":"module","types":"./dist/lib.d.ts","module":"./dist/procedural-art.js","exports":{".":{"types":"./dist/lib.d.ts","import":"./dist/procedural-art.js"}},"gitHead":"2807d8b62c72453dbecb54e6ccc1eea038941ba5","scripts":{"dev":"vite","test":"bunx playwright test --reporter=list","build":"tsc && vite build","preview":"vite preview","build:lib":"BUILD_LIB=true vite build && tsc -p tsconfig.lib.json","test:headed":"bunx playwright test --headed"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5d0c07d6-7e3f-4743-8d32-81b762d05b93"}},"repository":{"url":"git+https://github.com/benjadiazp/procedural-art.git","type":"git"},"_npmVersion":"11.12.1","description":"GPU-accelerated procedural art simulations built with Three.js","directories":{},"_nodeVersion":"22.22.2","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.1","three":"^0.183.2","lil-gui":"^0.21.0","puppeteer":"^24.40.0","typescript":"~5.9.3","@types/three":"^0.183.1","postprocessing":"^6.39.0","@playwright/test":"^1.59.1","semantic-release":"^25.0.3","@semantic-release/git":"^10.0.1","@semantic-release/exec":"^7.1.0","@semantic-release/changelog":"^6.0.3"},"peerDependencies":{"three":">=0.160.0","lil-gui":">=0.19.0","postprocessing":">=6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/procedural-art_0.1.6_1775701972651_0.8155910681720311","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@benjadiazp/procedural-art","version":"0.1.7","license":"MIT","_id":"@benjadiazp/procedural-art@0.1.7","maintainers":[{"name":"benjadiazp","email":"elbenjadiazp@gmail.com"}],"homepage":"https://github.com/benjadiazp/procedural-art#readme","bugs":{"url":"https://github.com/benjadiazp/procedural-art/issues"},"dist":{"shasum":"b95433bba3d4cfc7064335fbf3ae79b1c10330ea","tarball":"https://registry.npmjs.org/@benjadiazp/procedural-art/-/procedural-art-0.1.7.tgz","fileCount":12,"integrity":"sha512-CRKOU9jY2VvfB1TG22qQYuea+BV2pQuTD7quNZ6VXRplvUIsQ7+GadOfk/PlQnVRvkcwXawtCqEGVFqTBs+NVQ==","signatures":[{"sig":"MEYCIQD5YEaUJb4/cm6bEADCJEtIRcBn67i+WBa305S2KJl35QIhAJtT+kPud2X9XiLwyziyF2kLUiNfps3dTLyNsx/K8561","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@benjadiazp%2fprocedural-art@0.1.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":106265},"main":"./dist/procedural-art.js","type":"module","types":"./dist/lib.d.ts","module":"./dist/procedural-art.js","exports":{".":{"types":"./dist/lib.d.ts","import":"./dist/procedural-art.js"}},"gitHead":"0ddfeff72a190990460c4731149057862f139140","scripts":{"dev":"vite","test":"bunx playwright test --reporter=list","build":"tsc && vite build","preview":"vite preview","build:lib":"BUILD_LIB=true vite build && tsc -p tsconfig.lib.json","test:headed":"bunx playwright test --headed"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5d0c07d6-7e3f-4743-8d32-81b762d05b93"}},"repository":{"url":"git+https://github.com/benjadiazp/procedural-art.git","type":"git"},"_npmVersion":"11.12.1","description":"GPU-accelerated procedural art simulations built with Three.js","directories":{},"_nodeVersion":"22.22.2","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.1","three":"^0.183.2","lil-gui":"^0.21.0","puppeteer":"^24.40.0","typescript":"~5.9.3","@types/three":"^0.183.1","postprocessing":"^6.39.0","@playwright/test":"^1.59.1","semantic-release":"^25.0.3","@semantic-release/git":"^10.0.1","@semantic-release/exec":"^7.1.0","@semantic-release/changelog":"^6.0.3"},"peerDependencies":{"three":">=0.160.0","lil-gui":">=0.19.0","postprocessing":">=6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/procedural-art_0.1.7_1775707957665_0.8989173126925285","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@benjadiazp/procedural-art","version":"0.1.8","description":"GPU-accelerated procedural art simulations built with Three.js","license":"MIT","repository":{"type":"git","url":"git+https://github.com/benjadiazp/procedural-art.git"},"type":"module","main":"./dist/procedural-art.js","module":"./dist/procedural-art.js","types":"./dist/lib.d.ts","exports":{".":{"import":"./dist/procedural-art.js","types":"./dist/lib.d.ts"}},"publishConfig":{"access":"public","provenance":true},"scripts":{"dev":"vite","build":"tsc && vite build","build:lib":"BUILD_LIB=true vite build && tsc -p tsconfig.lib.json","preview":"vite preview","test":"bunx playwright test --reporter=list","test:headed":"bunx playwright test --headed"},"peerDependencies":{"three":">=0.160.0","lil-gui":">=0.19.0","postprocessing":">=6.0.0"},"devDependencies":{"@playwright/test":"^1.59.1","@semantic-release/changelog":"^6.0.3","@semantic-release/exec":"^7.1.0","@semantic-release/git":"^10.0.1","@types/three":"^0.183.1","lil-gui":"^0.21.0","postprocessing":"^6.39.0","puppeteer":"^24.40.0","semantic-release":"^25.0.3","three":"^0.183.2","typescript":"~5.9.3","vite":"^8.0.1"},"gitHead":"b3f1cc2d22ec9a86981225850413922ba424ee14","_id":"@benjadiazp/procedural-art@0.1.8","bugs":{"url":"https://github.com/benjadiazp/procedural-art/issues"},"homepage":"https://github.com/benjadiazp/procedural-art#readme","_nodeVersion":"22.22.2","_npmVersion":"11.12.1","dist":{"integrity":"sha512-Ns9XRBcfU0A6MBeHgUJpHKNjvvvs02oHCvrqOcJZ42vJocJywtSQiGefjxlVZhSH8bXr46kgvQvPVDqcrtubbA==","shasum":"553341c812e9fd674d7311dca313708a430262d0","tarball":"https://registry.npmjs.org/@benjadiazp/procedural-art/-/procedural-art-0.1.8.tgz","fileCount":18,"unpackedSize":124749,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@benjadiazp%2fprocedural-art@0.1.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDufysN//P6NNeLEHriCVBiCD4PgKB4EvT7u7WON4hRiwIhAKfHcKvfb8iksueKazsupxeIuS8j/X/dzVIqGbHkU/vG"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5d0c07d6-7e3f-4743-8d32-81b762d05b93"}},"directories":{},"maintainers":[{"name":"benjadiazp","email":"elbenjadiazp@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/procedural-art_0.1.8_1775772548597_0.2192763078536657"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-07T03:35:45.990Z","modified":"2026-04-09T22:09:09.117Z","0.1.0":"2026-04-07T03:35:46.348Z","0.1.2":"2026-04-07T04:17:46.505Z","0.1.3":"2026-04-07T04:20:00.419Z","0.1.6":"2026-04-09T02:32:52.801Z","0.1.7":"2026-04-09T04:12:37.830Z","0.1.8":"2026-04-09T22:09:08.806Z"},"bugs":{"url":"https://github.com/benjadiazp/procedural-art/issues"},"license":"MIT","homepage":"https://github.com/benjadiazp/procedural-art#readme","repository":{"type":"git","url":"git+https://github.com/benjadiazp/procedural-art.git"},"description":"GPU-accelerated procedural art simulations built with Three.js","maintainers":[{"name":"benjadiazp","email":"elbenjadiazp@gmail.com"}],"readme":"# Procedural Art\n\nGPU-accelerated procedural art simulations built with Three.js, TypeScript, and Vite.\n\n## Simulations\n\n- **Boids** — flocking behavior\n- **Reaction-Diffusion** — Turing pattern formation\n- **Physarum** — slime mold transport networks\n- **Curl Noise** — divergence-free particle flow\n- **Fluid** — Navier-Stokes fluid dynamics\n\n## Usage as npm package\n\n```bash\nnpm install @benjadiazp/procedural-art\n```\n\n### Peer dependencies\n\nThe library expects these packages to be installed in your project:\n\n```bash\nnpm install three lil-gui postprocessing\n```\n\n### Basic usage\n\nMount a simulation into any container element:\n\n```ts\nimport { mount } from '@benjadiazp/procedural-art';\n\nconst result = mount(document.getElementById('canvas-container')!, {\n  simulation: 'Boids',   // optional — defaults to the first simulation\n  showControls: true,     // optional — show parameter GUI overlay\n});\n\n// List available simulations\nconsole.log(result.getSimulationNames());\n// => ['Boids', 'Reaction-Diffusion', 'Physarum', 'Curl Noise', 'Fluid']\n\n// Switch simulation at runtime\nresult.setSimulation('Fluid');\n\n// Clean up when done\nresult.destroy();\n```\n\nThe container element must have explicit dimensions (width and height). The canvas will fill it and respond to resizes automatically.\n\n### Mount options\n\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| `simulation` | `string` | First registered | Name of the simulation to load (case-insensitive) |\n| `showControls` | `boolean` | `false` | Show the lil-gui parameter panel overlaid on the canvas |\n| `antialias` | `boolean` | `true` | Enable WebGL antialiasing |\n| `labels` | `Record<string, string>` | `{}` | Label translations (see [Localization](#localization)) |\n\n### Mount result\n\nThe object returned by `mount()` exposes these methods:\n\n| Method | Description |\n|--------|-------------|\n| `destroy()` | Tear down the renderer, remove all DOM elements, and stop the animation loop |\n| `setSimulation(name)` | Switch to a different simulation by name (case-insensitive) |\n| `getSimulationNames()` | Returns an array of all available simulation names (English) |\n\n### Localization\n\nAll UI labels (simulation names, preset names, parameter labels, folder names) can be translated via the `labels` option. Keys are the default English strings; values are your translations. Any key you don't translate falls back to English automatically.\n\nUse the exported `i18nKeys` object to discover all available keys with full TypeScript autocompletion:\n\n```ts\nimport { mount, i18nKeys } from '@benjadiazp/procedural-art';\n\nconst labels: Record<string, string> = {\n  // Common\n  [i18nKeys.common.parameters]: 'Parámetros',\n  [i18nKeys.common.preset]: 'Predefinido',\n\n  // Simulation names\n  [i18nKeys.boids.name]: 'Boids',\n  [i18nKeys.fluid.name]: 'Fluido',\n\n  // Preset names\n  [i18nKeys.boids.presets.murmuration]: 'Murmuración',\n  [i18nKeys.boids.presets.fireflies]: 'Luciérnagas',\n\n  // Folder names\n  [i18nKeys.boids.folders.behavior]: 'Comportamiento',\n  [i18nKeys.boids.folders.appearance]: 'Apariencia',\n\n  // Parameter labels\n  [i18nKeys.boids.labels.separation]: 'Separación',\n  [i18nKeys.boids.labels.brightness]: 'Brillo',\n};\n\nmount(container, { simulation: 'Boids', showControls: true, labels });\n```\n\nThe `i18nKeys` object is organized by simulation:\n\n```\ni18nKeys.common          — shared keys (Parameters, Preset)\ni18nKeys.boids           — .name, .presets.*, .folders.*, .labels.*\ni18nKeys.reactionDiffusion\ni18nKeys.physarum\ni18nKeys.curlNoise\ni18nKeys.fluid\n```\n\nA `LabelKey` type is also exported as a union of every valid key string, useful for building typed translation files:\n\n```ts\nimport type { LabelKey } from '@benjadiazp/procedural-art';\n\nconst translations: Partial<Record<LabelKey, string>> = {\n  'Parameters': 'Parámetros',\n  'Brightness': 'Brillo',\n};\n```\n\n## Getting Started\n\n```bash\nbun install\nbun dev\n```\n\n## Scripts\n\n| Command | Description |\n|---------|-------------|\n| `bun dev` | Start dev server |\n| `bun run build` | Typecheck + production build |\n| `bun run build:lib` | Build library for npm |\n| `bunx playwright test` | Run visual tests |\n\n## License\n\nMIT\n","readmeFilename":"README.md"}