{"id":20872513,"url":"https://github.com/romnn/cookiecutter-webgl","last_synced_at":"2026-04-09T17:48:23.031Z","repository":{"id":50176277,"uuid":"240427276","full_name":"romnn/cookiecutter-webgl","owner":"romnn","description":"cookiecutter template for creating modern WebGL experiments with three.js.","archived":false,"fork":false,"pushed_at":"2022-12-08T07:47:49.000Z","size":551,"stargazers_count":1,"open_issues_count":2,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-19T08:44:25.483Z","etag":null,"topics":["cookiecutter","es6","template","threejs","typescript","webgl","webpack"],"latest_commit_sha":null,"homepage":"https://romnn.github.io/cookiecutter-webgl/","language":"Python","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/romnn.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":"CONTRIBUTING.rst","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-02-14T04:23:53.000Z","updated_at":"2024-03-06T21:10:35.000Z","dependencies_parsed_at":"2022-08-31T05:25:19.560Z","dependency_job_id":null,"html_url":"https://github.com/romnn/cookiecutter-webgl","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/romnn%2Fcookiecutter-webgl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/romnn%2Fcookiecutter-webgl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/romnn%2Fcookiecutter-webgl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/romnn%2Fcookiecutter-webgl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/romnn","download_url":"https://codeload.github.com/romnn/cookiecutter-webgl/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243247832,"owners_count":20260747,"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","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":["cookiecutter","es6","template","threejs","typescript","webgl","webpack"],"created_at":"2024-11-18T06:19:13.273Z","updated_at":"2025-12-30T21:50:47.709Z","avatar_url":"https://github.com/romnn.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":".. highlight:: console\n\n===============================\nCookiecutter WebGL Template\n===============================\n\n.. image:: https://github.com/romnn/cookiecutter-webgl/workflows/test/badge.svg\n    :target: https://github.com/romnn/cookiecutter-webgl/actions\n    :alt: Build status\n\nThis ``cookiecutter`` templates a modern base project for\ncreating ``WebGL`` experiments with `three.js`_.\n\nIt uses yarn_ and typescript_ with webpack_ and also includes\ncommon tools such as `dat.gui`_, `stats.js`_ or `Orbit Controls`_.\n\nSee the generated template `in action \u003chttps://romnn.github.io/cookiecutter-webgl/\u003e`_. \n\n.. _three.js: https://threejs.org/\n.. _yarn: https://yarnpkg.com/\n.. _typescript: https://www.typescriptlang.org/\n.. _webpack: https://webpack.js.org/\n.. _dat.gui: https://github.com/dataarts/dat.gui\n.. _stats.js: https://github.com/mrdoob/stats.js/\n.. _Orbit Controls: https://threejs.org/docs/#examples/en/controls/OrbitControls\n\n.. image:: screenshot.png\n  :width: 400\n  :alt: Example project screenshot\n\nFeatures\n--------\n\n* Modern typescript_ ECMA 2018 code base\n* Fully typed support for three.js_\n* Bundling using webpack_\n* Pre configured to import your CSS and transpile `SASS/SCSS`_\n* Includes bootstrap_ for quick prototype user interfaces\n* Includes useful tools: `dat.gui`_, `stats.js`_ and `Orbit Controls`_\n* Fast and deterministic dependencies using yarn_\n* Hot reload (HMR) development mode\n* Integrated linting and auto-fixing using eslint_\n* Optional linting as a git pre commit hook\n\n.. _`SASS/SCSS`: https://sass-lang.com/\n.. _`eslint`: https://eslint.org/\n.. _`bootstrap`: https://getbootstrap.com/\n\nQuickstart\n----------\n\nInstall ``cookiecutter\u003e=1.4.0`` if you haven't already::\n\n    $ python3 -m pip install -U cookiecutter\n\nGenerate your WebGL project (you will be asked for the project name etc)::\n\n    $ cookiecutter https://github.com/romnn/cookiecutter-webgl.git\n\nAfter your project was created:\n\n* Create a remote repository and publish your project::\n\n    $ cd \u003cmypackage\u003e\n    $ git remote add origin git@github.com:myusername/mypackage.git\n    $ git add .\n    $ git commit -m \"Initial commit\"\n    $ git push --set-upstream origin master\n\n* Add the repo to your `Travis-CI`_ account.\n  If you have connected travis with GitHub this is done automatically.\n\n* If you wish to publish an interactive demo version of your project on `GitHub Pages`_,\n  `generate a GitHub access token \u003chttps://github.com/settings/tokens\u003e`_ for\n  `repo:public_repo` and set this token in your travis build settings\n  as a secret environment variable ``GH_TOKEN``.\n\n  If you do not want to deploy to `GitHub Pages`_,\n  remove the ``deploy pages`` build stage from ``.travis.yml``.\n\n* From here on you can continue with the instructions in\n  your generated project's ``README.md``.\n\n* Start coding!\n\n\n.. _Travis-CI: https://travis-ci.com\n.. _GitHub Pages: https://pages.github.com/\n\n\nCustomization after project creation\n-------------------------------------\n\n    How can I add git pre commit checks to a project when I disabled\n    them during creation?\n\nThe template still installs husky_,\nthe package used for installing git hooks in your project,\nbut does not configure any rules. Just add an entry to your ``package.json``:\n\n.. code-block:: json\n\n    \"husky\": {\n        \"hooks\": {\n            \"pre-commit\": \"yarn lint\"\n        }\n    }\n\n\n.. _husky: https://github.com/typicode/husky\n\n    How can I change the linter strictness about warnings\n    after I created the project?\n\nYou can always configure the ``.eslintrc.js`` and ``.prettierrc.js``\nas you desire.\nTo change how linting warnings are treated, change the ``--max-warnings``\nparameter value in your ``package.json``:\n\n* ``--max-warnings=-1`` allows unlimited warnings\n* ``--max-warnings=n`` where ``n\u003e=0`` makes the linter\n  fail after ``n`` warnings\n\n\nCredits\n-------------\n\n* The basic setup structure was inspired by\n  `mterczynski/typescript-webpack-threejs-template`_.\n\n* The use and configuration of tools such as\n  `dat.gui`_ or `stats.js`_ was inspired by\n  `vaneenige/webgl-structure`_.\n\n* The overall template structure including tests and hooks\n  was inspired by my `python package template`_.\n\n.. _`mterczynski/typescript-webpack-threejs-template`: https://github.com/mterczynski/typescript-webpack-threejs-template\n.. _`vaneenige/webgl-structure`: https://github.com/vaneenige/webgl-structure\n.. _`python package template`: https://github.com/romnn/cookiecutter-pypackage\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fromnn%2Fcookiecutter-webgl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fromnn%2Fcookiecutter-webgl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fromnn%2Fcookiecutter-webgl/lists"}