{"id":37657743,"url":"https://github.com/alexanderbrodko/expl","last_synced_at":"2026-01-16T11:44:16.402Z","repository":{"id":219430799,"uuid":"749049207","full_name":"alexanderbrodko/expl","owner":"alexanderbrodko","description":"Super simple and lightweight particle system imitating explosion. Editor included","archived":false,"fork":false,"pushed_at":"2024-02-21T20:11:57.000Z","size":68,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-02-22T20:33:50.699Z","etag":null,"topics":["confetti","explosion","firework","js","particle"],"latest_commit_sha":null,"homepage":"https://alexanderbrodko.github.io/expl/","language":"HTML","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alexanderbrodko.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2024-01-27T12:45:53.000Z","updated_at":"2024-01-30T08:56:31.000Z","dependencies_parsed_at":null,"dependency_job_id":"9a29a41d-527e-4b0d-8de7-fc89442cb152","html_url":"https://github.com/alexanderbrodko/expl","commit_stats":null,"previous_names":["alexanderbrodko/expl"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/alexanderbrodko/expl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexanderbrodko%2Fexpl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexanderbrodko%2Fexpl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexanderbrodko%2Fexpl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexanderbrodko%2Fexpl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alexanderbrodko","download_url":"https://codeload.github.com/alexanderbrodko/expl/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexanderbrodko%2Fexpl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28478360,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T06:30:42.265Z","status":"ssl_error","status_checked_at":"2026-01-16T06:30:16.248Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["confetti","explosion","firework","js","particle"],"created_at":"2026-01-16T11:44:15.887Z","updated_at":"2026-01-16T11:44:16.390Z","avatar_url":"https://github.com/alexanderbrodko.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# expl\nSingle file JS particles imitating explosion. Editor included\n\n\nDemo: https://alexanderbrodko.github.io/expl/?05006c360agpub00g00r007v80g0,055k6c360afvub00g00s007vnvg0,212q1jvv0a1jvv00cp1i1jlig0g0\n\n![image](https://github.com/alexanderbrodko/expl/assets/57812581/a27dc10e-6166-492c-809c-d89e1de86822)\n\nUse `homogenity` to see what is going on:\n\n![ezgif-1-e01af0b34d](https://github.com/alexanderbrodko/expl/assets/57812581/140d3b0e-a307-4b97-b10e-e48369c09c39)\n\n\n## Usage\n\n**Important note:** draw is your own business. For a draw example, see [draw using Canvas](https://github.com/alexanderbrodko/expl/blob/main/index.html#L145) in editor or [PixiJS integration](https://www.pixiplayground.com/#/edit/zbOl38iaDnyNFfPJ3qqJK).\n\nCopy **expl.js** to your working dir and place `\u003cscript src=\"expl.js\"\u003e\u003c/script\u003e` in head of your document\n\n``` js\n// You have some code from editor URL\nlet str = '05006c360agpub00g00r007v80g0,055k6c360afvub00g00s007vnvg0,212q1jvv0a1jvv00cp1i1jlig0g0';\n\n// create manager\nlet expl = new Explosions();\n\n// add fx\nexpl.spawnFromString(x, y, str);\n\n// dont forget to update\nexpl.update(dt);\n\n// draw in any way possible\nfor (let e of expl) if (e.t \u003e 0) { // avoid particles waiting to start\n\tlet progress = e.t / e. ttl; // can animate opacity or any other propery you need; DIY\n\n\t// Virtual space is GL like: -1 to 1. Screen center is (0, 0). Y axis is directed to bottom\n\te.x, e.y, e.rnd, e.custom, e.params; // use this to draw\n}\n```\n\n### Optional\nYou can spawn particles from an object with params:\n``` js\nlet fx = {\n\t\"pause\": 0,\n\t\"dx\": 0, // direction and force of an explosion\n\t\"dy\": -350, // direction and force of an explosion\n\t\"count\": 28,\n\t\"spread\": 0.2, // how wide sector emitter have\n\t\"area\", // radius of the emitter\n\t\"gravity\": 500,\n\t\"ttl\": 0.55, // time to live\n\t\"homogenity\": 0.2,\n\t\"physical\": 0.000085,\n\t\"custom\": 10 // custom param; preview size in editor\n};\nexpl.add(x, y, fx, yourParams, pause); // every particle will have .params === yourParams\n\n// or if you want to add single fx\nlet str = '05006c360agpub00g00r007v80g0';\nfx = expl.unpack(str);\nexpl.add(x, y, fx);\n\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexanderbrodko%2Fexpl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falexanderbrodko%2Fexpl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexanderbrodko%2Fexpl/lists"}