{"id":13490958,"url":"https://github.com/bryik/aframe-cubemap-component","last_synced_at":"2025-09-07T02:08:26.687Z","repository":{"id":8706342,"uuid":"59422889","full_name":"bryik/aframe-cubemap-component","owner":"bryik","description":"A component for creating a skybox with a cubemap in A-Frame.","archived":false,"fork":false,"pushed_at":"2024-09-06T19:58:12.000Z","size":54568,"stargazers_count":72,"open_issues_count":0,"forks_count":23,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-08-24T17:33:01.878Z","etag":null,"topics":["aframe","cubemap","webvr"],"latest_commit_sha":null,"homepage":"https://aframe-cubemap-component.netlify.app/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bryik.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","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,"publiccode":null,"codemeta":null}},"created_at":"2016-05-22T16:39:41.000Z","updated_at":"2025-03-16T13:40:09.000Z","dependencies_parsed_at":"2024-10-31T04:31:42.568Z","dependency_job_id":"faca541a-a10a-4692-83e4-1277a25d3b0f","html_url":"https://github.com/bryik/aframe-cubemap-component","commit_stats":{"total_commits":90,"total_committers":3,"mean_commits":30.0,"dds":"0.18888888888888888","last_synced_commit":"e4def4c9315566862b8326e2c4df7c5d1450d255"},"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/bryik/aframe-cubemap-component","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bryik%2Faframe-cubemap-component","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bryik%2Faframe-cubemap-component/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bryik%2Faframe-cubemap-component/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bryik%2Faframe-cubemap-component/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bryik","download_url":"https://codeload.github.com/bryik/aframe-cubemap-component/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bryik%2Faframe-cubemap-component/sbom","scorecard":{"id":255952,"data":{"date":"2025-08-11","repo":{"name":"github.com/bryik/aframe-cubemap-component","commit":"2c4b39efd378868624246a1710db8229601bb0b9"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3,"checks":[{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Code-Review","score":0,"reason":"Found 1/12 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 21 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-17T09:43:58.472Z","repository_id":8706342,"created_at":"2025-08-17T09:43:58.473Z","updated_at":"2025-08-17T09:43:58.473Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273986629,"owners_count":25202708,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-07T02:00:09.463Z","response_time":67,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["aframe","cubemap","webvr"],"created_at":"2024-07-31T19:00:52.373Z","updated_at":"2025-09-07T02:08:26.661Z","avatar_url":"https://github.com/bryik.png","language":"JavaScript","funding_links":[],"categories":["Uncategorized"],"sub_categories":["Uncategorized"],"readme":"## aframe-cubemap-component\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"preview.png\"/\u003e\n\u003c/p\u003e\n\nAn [A-Frame](https://aframe.io) component for creating a skybox from a cubemap.\n\n### Properties\n\n|  Property  |                      Description                      | Default Value |\n| :--------: | :---------------------------------------------------: | :-----------: |\n|   folder   | Path to the folder holding your cubemap or a selector |     none      |\n| edgeLength |         Controls the dimensions of the skybox         |     5000      |\n|    ext     |                  The image extension                  |      jpg      |\n\nBy default, the height, width, and depth of the skybox are set to 5000. In other words, the dimensions of the skybox are 5000x5000x5000.\n\n**Note:** `folder` can also be an ID to an `\u003ca-cubemap\u003e` asset. See `./examples/tests/a-assets/`.\n\n### Events\n\n|     Name      |                 Description                 |\n| :-----------: | :-----------------------------------------: |\n| cubemapLoaded | Emitted when a texture has finished loading |\n\n### Usage\n\nAttach the component to an entity using the path to the folder holding your cubemap as the attribute.\n\n```html\n\u003ca-entity cubemap=\"folder: /examples/assets/Yokohama3/\"\u003e\u003c/a-entity\u003e\n```\n\nInside the folder, the component assumes the following naming scheme:\n\n```javascript\n// prettier-ignore\nconst urls = [\n  'posx.jpg', 'negx.jpg',\n  'posy.jpg', 'negy.jpg',\n  'posz.jpg', 'negz.jpg'\n];\n```\n\nThis is the scheme used by Three.js's [CubeTexture](http://threejs.org/docs/index.html#Reference/Textures/CubeTexture). If your cubemap images do not follow this scheme, you will need to rename them (or fork this repo and alter the above in index.js).\n\nThe Yokohama cubemap texture is the work of [Emil Persson, aka Humus](http://www.humus.name). Check out his website, it is a good source for [cubemap textures](http://www.humus.name/index.php?page=Textures). IIRC, I got the milky way texture from uschi0815 on the [Kerbal Space Program forum](http://forum.kerbalspaceprogram.com/index.php?/topic/128932-milky-way-panorama-as-skybox-for-texturereplacer/).\n\nTo modify the size of the resulting skybox, use the edgeLength property.\n\n```html\n\u003ca-entity cubemap=\"folder: /assets/Yokohama3/; edgeLength: 1000\"\u003e\u003c/a-entity\u003e\n```\n\n#### Browser Installation\n\nInstall and use by directly including the [browser files](dist):\n\n```html\n\u003chead\u003e\n  \u003ctitle\u003eMy A-Frame Scene\u003c/title\u003e\n  \u003cscript src=\"https://aframe.io/releases/1.6.0/aframe.min.js\"\u003e\u003c/script\u003e\n  \u003cscript src=\"https://unpkg.com/aframe-cubemap-component@4.0.0/index.js\"\u003e\u003c/script\u003e\n\u003c/head\u003e\n\n\u003cbody\u003e\n  \u003ca-scene\u003e\n    \u003ca-entity cubemap=\"folder: /examples/assets/Yokohama3/\"\u003e\u003c/a-entity\u003e\n  \u003c/a-scene\u003e\n\u003c/body\u003e\n```\n\n## FAQ\n\n### Can this component display stereoscopic cubemaps?\n\nNo. However, it's not too difficult to achieve this with a little bit of JavaScript. The trick is to split a stereo cubemap into two separate cubemaps, one for each eye, and render them with separate entities. Then use JS to fetch each entity's `object3D` and set the left to layer 1 and the right to layer 2. [Here is an example](https://github.com/bryik/aframe-metaverse-contest/blob/gh-pages/examples/fushimi-inari.html#L31).\n\n## Local Development\n\nClone the repo and `cd` into it\n\n```bash\ngit clone git@github.com:bryik/aframe-cubemap-component.git\ncd aframe-cubemap-component\n```\n\nInstall dependencies:\n\n```bash\nnpm i\n```\n\nTo run the examples locally:\n\n```bash\nnpm start\n```\n\nThis should start a local dev server, go to [http://localhost:3000/](http://localhost:3000/) to inspect the examples. To stop the server, hit `CONTROL-C`.\n\n## Contributing\n\nPRs are welcome. Opening an issue to discuss large changes beforehand is a good idea.\n\nFor more information, take a look at [A-Frame's contributing guide](https://github.com/aframevr/aframe/blob/master/CONTRIBUTING.md), specifically the [steps for contributing code](https://github.com/aframevr/aframe/blob/master/CONTRIBUTING.md#contribute-code-to-a-frame).\n\n## Publishing\n\n1. Add a new entry to `./CHANGELOG.md`.\n\n2. Increment `\"version\"` in `./package.json` following [SEMVER](https://semver.org/).\n\n```bash\n# Where \u003cupdate_type\u003e is one of (patch, major, or minor)\nnpm version \u003cupdate_type\u003e\n```\n\n3. `npm publish` (may need to `npm login` first)\n\n4. Update the `unpkg.com/aframe-cubemap-component@VERSION/index.js` link in this README.\n\n5. Push the tag that `npm version` created: `git push origin tag \u003ctag_name\u003e` (use `git tag` to see the existing tags).\n\n6. Draft a [new release](https://github.com/bryik/aframe-cubemap-component/releases/new).\n\n### A note about Browserify\n\nPrior to version 3.0.0, this component used a Browserify workflow. This was fine until it prevented upgrading to A-Frame v 1.3.0 which was needed to [resolve a rendering issue](https://github.com/bryik/aframe-cubemap-component/issues/39#issuecomment-1312806990). Since this component has no external dependencies and webpack is annoying to setup, I decided to go for a low-tech solution.\n\nUsers can pin specific versions by altering the unpkg URL:\n\n```\nhttps://unpkg.com/aframe-cubemap-component@2.1.1/index.js\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbryik%2Faframe-cubemap-component","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbryik%2Faframe-cubemap-component","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbryik%2Faframe-cubemap-component/lists"}