├── .gitattributes ├── .gitignore ├── LICENSE ├── README.md ├── assets └── awesome-threejs-logo.png ├── code-of-conduct.md └── contributing.md /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto 2 | readme.md merge=union 3 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Creative Commons Legal Code 2 | 3 | CC0 1.0 Universal 4 | 5 | CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE 6 | LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN 7 | ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS 8 | INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES 9 | REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS 10 | PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM 11 | THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED 12 | HEREUNDER. 13 | 14 | Statement of Purpose 15 | 16 | The laws of most jurisdictions throughout the world automatically confer 17 | exclusive Copyright and Related Rights (defined below) upon the creator 18 | and subsequent owner(s) (each and all, an "owner") of an original work of 19 | authorship and/or a database (each, a "Work"). 20 | 21 | Certain owners wish to permanently relinquish those rights to a Work for 22 | the purpose of contributing to a commons of creative, cultural and 23 | scientific works ("Commons") that the public can reliably and without fear 24 | of later claims of infringement build upon, modify, incorporate in other 25 | works, reuse and redistribute as freely as possible in any form whatsoever 26 | and for any purposes, including without limitation commercial purposes. 27 | These owners may contribute to the Commons to promote the ideal of a free 28 | culture and the further production of creative, cultural and scientific 29 | works, or to gain reputation or greater distribution for their Work in 30 | part through the use and efforts of others. 31 | 32 | For these and/or other purposes and motivations, and without any 33 | expectation of additional consideration or compensation, the person 34 | associating CC0 with a Work (the "Affirmer"), to the extent that he or she 35 | is an owner of Copyright and Related Rights in the Work, voluntarily 36 | elects to apply CC0 to the Work and publicly distribute the Work under its 37 | terms, with knowledge of his or her Copyright and Related Rights in the 38 | Work and the meaning and intended legal effect of CC0 on those rights. 39 | 40 | 1. Copyright and Related Rights. A Work made available under CC0 may be 41 | protected by copyright and related or neighboring rights ("Copyright and 42 | Related Rights"). Copyright and Related Rights include, but are not 43 | limited to, the following: 44 | 45 | i. the right to reproduce, adapt, distribute, perform, display, 46 | communicate, and translate a Work; 47 | ii. moral rights retained by the original author(s) and/or performer(s); 48 | iii. publicity and privacy rights pertaining to a person's image or 49 | likeness depicted in a Work; 50 | iv. rights protecting against unfair competition in regards to a Work, 51 | subject to the limitations in paragraph 4(a), below; 52 | v. rights protecting the extraction, dissemination, use and reuse of data 53 | in a Work; 54 | vi. database rights (such as those arising under Directive 96/9/EC of the 55 | European Parliament and of the Council of 11 March 1996 on the legal 56 | protection of databases, and under any national implementation 57 | thereof, including any amended or successor version of such 58 | directive); and 59 | vii. other similar, equivalent or corresponding rights throughout the 60 | world based on applicable law or treaty, and any national 61 | implementations thereof. 62 | 63 | 2. Waiver. To the greatest extent permitted by, but not in contravention 64 | of, applicable law, Affirmer hereby overtly, fully, permanently, 65 | irrevocably and unconditionally waives, abandons, and surrenders all of 66 | Affirmer's Copyright and Related Rights and associated claims and causes 67 | of action, whether now known or unknown (including existing as well as 68 | future claims and causes of action), in the Work (i) in all territories 69 | worldwide, (ii) for the maximum duration provided by applicable law or 70 | treaty (including future time extensions), (iii) in any current or future 71 | medium and for any number of copies, and (iv) for any purpose whatsoever, 72 | including without limitation commercial, advertising or promotional 73 | purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each 74 | member of the public at large and to the detriment of Affirmer's heirs and 75 | successors, fully intending that such Waiver shall not be subject to 76 | revocation, rescission, cancellation, termination, or any other legal or 77 | equitable action to disrupt the quiet enjoyment of the Work by the public 78 | as contemplated by Affirmer's express Statement of Purpose. 79 | 80 | 3. Public License Fallback. Should any part of the Waiver for any reason 81 | be judged legally invalid or ineffective under applicable law, then the 82 | Waiver shall be preserved to the maximum extent permitted taking into 83 | account Affirmer's express Statement of Purpose. In addition, to the 84 | extent the Waiver is so judged Affirmer hereby grants to each affected 85 | person a royalty-free, non transferable, non sublicensable, non exclusive, 86 | irrevocable and unconditional license to exercise Affirmer's Copyright and 87 | Related Rights in the Work (i) in all territories worldwide, (ii) for the 88 | maximum duration provided by applicable law or treaty (including future 89 | time extensions), (iii) in any current or future medium and for any number 90 | of copies, and (iv) for any purpose whatsoever, including without 91 | limitation commercial, advertising or promotional purposes (the 92 | "License"). The License shall be deemed effective as of the date CC0 was 93 | applied by Affirmer to the Work. Should any part of the License for any 94 | reason be judged legally invalid or ineffective under applicable law, such 95 | partial invalidity or ineffectiveness shall not invalidate the remainder 96 | of the License, and in such case Affirmer hereby affirms that he or she 97 | will not (i) exercise any of his or her remaining Copyright and Related 98 | Rights in the Work or (ii) assert any associated claims and causes of 99 | action with respect to the Work, in either case contrary to Affirmer's 100 | express Statement of Purpose. 101 | 102 | 4. Limitations and Disclaimers. 103 | 104 | a. No trademark or patent rights held by Affirmer are waived, abandoned, 105 | surrendered, licensed or otherwise affected by this document. 106 | b. Affirmer offers the Work as-is and makes no representations or 107 | warranties of any kind concerning the Work, express, implied, 108 | statutory or otherwise, including without limitation warranties of 109 | title, merchantability, fitness for a particular purpose, non 110 | infringement, or the absence of latent or other defects, accuracy, or 111 | the present or absence of errors, whether or not discoverable, all to 112 | the greatest extent permissible under applicable law. 113 | c. Affirmer disclaims responsibility for clearing rights of other persons 114 | that may apply to the Work or any use thereof, including without 115 | limitation any person's Copyright and Related Rights in the Work. 116 | Further, Affirmer disclaims responsibility for obtaining any necessary 117 | consents, permissions or other rights required for any use of the 118 | Work. 119 | d. Affirmer understands and acknowledges that Creative Commons is not a 120 | party to this document and has no duty or obligation with respect to 121 | this CC0 or use of the Work. 122 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |
9 | 10 | # Contents 11 | 12 | - [Core](#Core) 13 | - [Books](#Books) 14 | - [Courses](#Courses) 15 | - [Articles](#Articles) 16 | - [Videos](#Videos) 17 | - [Inspiration](#Inspiration) 18 | - [Resources](#Resources) 19 | - [Tools](#Tools) 20 | - [Libraries](#Libraries) 21 | - [Community](#Community) 22 | - [Demonstrations](#Demonstrations) 23 | - [Others](#Others) 24 | # Core 25 | 26 | - [ThreeJS official website](https://threejs.org/) 27 | - [ThreeJS examples](https://threejs.org/examples/#webgl_animation_keyframes) 28 | - [ThreeJS documentation](https://threejs.org/docs/index.html#manual/en/introduction/Creating-a-scene) 29 | 30 | # Books 31 | 32 | ## 3D Theory 33 | 34 | - [3D Math Primer for Graphics and Game Development](https://gamemath.com/book/intro.html): A must-read book to be 35 | comfortable with 3D maths. by [@ZPostFacto](https://twitter.com/ZPostFacto) 36 | & [@Ian-Parberry](https://github.com/Ian-Parberry) 37 | - [Physically Based Rendering - From Theory to Implementation](https://pbr-book.org/): A reference in term of PBR concepts. A gold mine. by [@mmp](https://github.com/mmp), [@wjakob](https://github.com/wjakob) & [@humper](https://twitter.com/humper) 38 | 39 | ## Creative Coding 40 | - [The Nature of Code](https://natureofcode.com/): Amazing book by a very funny author about a bunch of stuff to make experiences more natural based on the Processing language by [@shiffman](https://github.com/shiffman) 41 | 42 | ## ThreeJS 43 | 44 | - [Discover three.js](https://discoverthreejs.com/) 45 | - [Learn Three.js - Third Edition](https://www.packtpub.com/product/learn-three-js-third-edition/9781788833288) 46 | 47 | # Courses 48 | 49 | ## ThreeJS 50 | 51 | - [ThreeJS Journey](https://threejs-journey.com/): A great course accessible for the most beginner programmer who 52 | wants to learn how to make ThreeJS 3D experiences from scratch. by [@bruno_simon](https://twitter.com/bruno_simon) 53 | 54 | ## Shaders 55 | 56 | - [The Easiest Way to Learn GLSL](https://simondev.teachable.com/p/glsl-shaders-from-scratch) 57 | by [@iced_coffee_dev](https://twitter.com/iced_coffee_dev) 58 | - [The Book of Shaders](https://thebookofshaders.com/): A reference on the road to master shaders. And it's free. 59 | by [@patriciogv](https://twitter.com/patriciogv) 60 | 61 | # Articles 62 | 63 | ## Documentation 64 | 65 | - [ThreeJS Fundamentals](https://threejs.org/manual/#en/fundamentals) 66 | - [Shaderific for OpenGL](https://shaderific.com/index.html): Documentation on GLSL 67 | - [GLSL documentation](https://docs.gl/sl4/clamp) 68 | 69 | ## 3D Theory 70 | 71 | - [Explaining Homogeneous Coordinates & Projective Geometry](https://www.tomdalling.com/blog/modern-opengl/explaining-homogenous-coordinates-and-projective-geometry/): 72 | A very comprehensive article on homogeneous coordinates and projective geometry (To finally understand what is the 4th 73 | coordinate (w) in your vertex shaders) 74 | 75 | ## Tutorials 76 | 77 | - [Surface Sampling in Three.js](https://tympanus.net/codrops/2021/08/31/surface-sampling-in-three-js/): A comprehensive 78 | article about MeshSurfaceSampler 79 | - [How to Create a Fake 3D Image Effect with WebGL](https://tympanus.net/codrops/2019/02/20/how-to-create-a-fake-3d-image-effect-with-webgl/): 80 | A good article to learn how to add a fake depth to a 2D image in ThreeJS. 81 | - [Tutorial on Matrices](http://www.opengl-tutorial.org/beginners-tutorials/tutorial-3-matrices/): A limpid tutorial 82 | to understand shader projection, view and model matrices (visually impactful) 83 | 84 | ## Water 85 | 86 | - [Real-time rendering of water caustics](https://medium.com/@martinRenou/real-time-rendering-of-water-caustics-59cda1d74aa) Clever approach to caustics rendering 87 | - [Realtime fluid simulation](https://shahriyarshahrabi.medium.com/gentle-introduction-to-fluid-simulation-for-programmers-and-technical-artists-7c0045c40bac) Awesome article for the ones that want to create truly realistic water 88 | 89 | ## Generative Art 90 | 91 | - [generative artistry tutorials](https://generativeartistry.com/tutorials/): Really awesome evolutive tutorial to 92 | acquire some knowledge on Generative Art by [@rumyra](https://github.com/rumyra) 93 | & [@tholman](https://github.com/tholman) 94 | 95 | ## Collision detection 96 | 97 | - [Bounding volume collision detection](https://developer.mozilla.org/en-US/docs/Games/Techniques/3D_collision_detection/Bounding_volume_collision_detection_with_THREE.js) 98 | - [Physics based collision detection](https://medium.com/@bluemagnificent/collision-detection-in-javascript-3d-physics-using-ammo-js-and-three-js-31a5569291ef) 99 | 100 | # Inspiration 101 | 102 | ## Common 103 | 104 | - [same.energy](https://same.energy/): Visual search engine by keyword or picture (a bit like Pinterest) 105 | - [Pinterest](https://www.pinterest.fr/): Good source of inspiration 106 | 107 | ## Shaders 108 | 109 | - [ShaderToy](https://www.shadertoy.com/): Prepare to be blown away by this shader sharing platform. 110 | 111 | # Videos 112 | 113 | ## Shaders 114 | 115 | - [ShaderShop videos](http://tobyschachman.com/Shadershop/): Some awesome videos about ShaderShop and more. 116 | by [@mandy3284](https://twitter.com/mandy3284) 117 | 118 | # Resources 119 | 120 | ## Miscellaneous 121 | 122 | - [Three.js Resources](https://threejsresources.com/): Contains a bunch of curated resources (tools, tutorials, libraries, and techniques...) related to Three.js 123 | 124 | ## Matcaps 125 | 126 | - [Matcap repository](https://github.com/nidorx/matcaps) 127 | 128 | ## 3D assets 129 | 130 | - [Poliigon](https://www.poliigon.com/): Assets for 3D artists (Textures, Models, HDRI) 131 | - [Poly Haven](https://polyhaven.com/): Public CC0 3D Asset Library (Textures, Models, HDRI) 132 | 133 | ## Textures 134 | 135 | - [3D textures](https://3dtextures.me/): Free PBR textures with Diffuse, Normal, Displacement, Occlusion, Specularity 136 | and Roughness Maps. 137 | - [Arroway Textures](https://www.arroway-textures.ch/): Digital textures for 3D rendering and real-time use. 138 | - [ambientCG](https://ambientcg.com/): - CC0 textures for Physically Based Rendering 139 | 140 | ## GLSL Shaders 141 | ### Main 142 | - [Signal shaping functions](https://iquilezles.org/articles/functions/): A useful set of signal shaping patterns (to 143 | convert into GLSL) by [@iquilezles](https://twitter.com/iquilezles) 144 | - [Shaping functions](http://www.flong.com/archive/texts/code/): Awesome set of shaping functions for shaders 145 | by [@golan](https://twitter.com/golan) 146 | - [Cheat sheet on curves](https://www.flickr.com/photos/kynd/9546075099/): A quick reminder on how to make some signal 147 | patterns by [@kyndinfo](https://twitter.com/kyndinfo) 148 | - [GLSL Noises](https://gist.github.com/patriciogonzalezvivo/670c22f3966e662d2f83): Noises coded by others so you 149 | can use them directly in your shaders for cool effects (included: Perlin noises) 150 | - [Realistic water shader](https://github.com/jbouny/ocean) There are also some links with explanation of the approach 151 | ### Other 152 | - [PixelSpirit Elements Deck](https://pixelspiritdeck.com/): This is a tarot deck for learning GLSL shaders. Each PixelSpirit card has a visual element and its GLSL shader code. The cards are ordered from simplest to most complex, building a library of code functions that combine like a book of spells to form an infinite visual language. by [@patriciogv](https://twitter.com/patriciogv) 153 | - [PixelSpirit GitHub](https://github.com/patriciogonzalezvivo/PixelSpiritDeck) Library associated with the PixelSpirit Elemens Deck by [@patriciogv](https://twitter.com/patriciogv) 154 | 155 | # Tools 156 | 157 | ## Debug/Optimization 158 | 159 | - [GLTF Report](https://gltf.report): Web app to diagnose, optimize your gltf files. Nice inspector that even support BASIS/KTX2 textures. by [@donmccurdy](https://github.com/donmccurdy) 160 | - [gltf-transform](https://gltf-transform.dev/): CLI to run on your GLTF file for a lot of different optimizations (welding, pruning, draco compression...). It also enables the conversion of textures into [KTX2](https://github.com/KhronosGroup/KTX-Software) for optimizing textures on the GPU by [@donmccurdy](https://github.com/donmccurdy) 161 | 162 | ## Scene Creation 163 | 164 | - [Polygonjs](https://polygonjs.com): Node-based WebGL design tool, used for procedural geometry, particles, materials 165 | and animation. 166 | 167 | ## 3D modeling 168 | 169 | - [Blender](https://www.blender.org/): Free and powerful to create your own 3D assets. A lot of export file extensions 170 | are available. 171 | - [Houdini](https://www.sidefx.com/products/houdini/): To create procedural 3D assets. The free licence "Houdini 172 | Apprentice" 173 | can be used to learn (no commercial usage) 174 | - [Spline](https://spline.design/): A promising tool for 3D modeling, collaboratively. 175 | 176 | ## Materials 177 | 178 | - [Adobe Substance3D Suite](https://www.adobe.com/fr/products/substance3d/3d-augmented-reality.html) 179 | 180 | ## Cube Texture 181 | 182 | - [HDRI-to-CubeMap](https://matheowis.github.io/HDRI-to-CubeMap/): A tool to convert your HDRI file into a Cube map that 183 | can be load as a CubeTexture in ThreeJS. by [@matheowis](https://github.com/matheowis) 184 | 185 | ## Shaders 186 | ### Online tools 187 | - [GraphToy](https://graphtoy.com/): Powerful tool to wrap your head around and test shaping signals in GLSL 188 | by [@iquilezles](https://twitter.com/iquilezles) 189 | - [ShaderShop editor](http://tobyschachman.com/Shadershop/editor/): Visually impactful editor to work on shaping 190 | signals, by drag and dropping patterns. (Mindblowingly awesome) by [@mandy3284](https://twitter.com/mandy3284) 191 | - [NodeToy](https://app.nodetoy.co/): The shader tool for the web. NodeToy provides creators a powerful editor to create incredible new shaders and visual effects. If you are a react-three-fiber user, consider checking [react-nodetoy](https://github.com/NodeToy/react-nodetoy). All of this provided by [@Nodetoy](https://github.com/NodeToy). 192 | - [Shader Park](https://shaderpark.com/): A JavaScript library for creating interactive procedural 2D and 3D shaders. Helpful for raymarching shaders (the raymarcher is already built-in, SDFs and boolean operation between them already available). Works both in p5js style and GLSL. ([to contribute](https://github.com/shader-park/shader-park-core)) by [@shader-park](https://github.com/shader-park) 193 | 194 | ### Installed tools 195 | - [glslViewer](https://github.com/patriciogonzalezvivo/glslViewer): Console-based GLSL Sandbox for 2D/3D shaders by [@patriciogv](https://twitter.com/patriciogv). Battle-tested by its creator, it enables to build a creative pipeline agnostic to the target platform and to iterate very fast and with less frictions for making a draft of your shaders ideas. A must-have in your toolkit. 196 | 197 | ## Sandbox 198 | 199 | - [codesandbox](https://codesandbox.io/): Sandbox to experiment and share with people. ThreeJS template can be easily 200 | found. 201 | - [codepen](https://codepen.io/): Found it hard to configure for ThreeJS x Typescript, but a good sandbox to try out new 202 | things. 203 | - [threejs-editor](https://threejs.org/editor/): A nice tool to, for example, try out your Blender exports and how they 204 | will react in ThreeJS. 205 | 206 | ## Hosting 207 | 208 | - [vercel](https://vercel.com/): Easy tool to host your projects, and free for a personal/hobbyist type of projects. 209 | 210 | # Libraries 211 | ## GLSL/HLSL Shaders 212 | - [lygia](https://github.com/patriciogonzalezvivo/lygia): a granular and multi-language shader library designed for performance and flexibility by [@patriciogv](https://twitter.com/patriciogv). A cross platform library that will help you iterate on your shaders very easily. Going deep in the code of a specific functionality can also help you learn GLSL/HLSL. 213 | 214 | ## Animation 215 | - [gsap](https://greensock.com/gsap/): A mastodon for animations in CSS and for three.js too, backed up by awesome plugins like ScrollTrigger, Flip,... and mostly framework agnostic. 216 | 217 | 218 | ## Related Frameworks 219 | 220 | ### React 221 | 222 | - [react-three-fiber](https://github.com/pmndrs/react-three-fiber): A declarative way of handling your ThreeJS stuff for 223 | React by [@pmndrs](https://github.com/pmndrs) 224 | - [drei](https://github.com/pmndrs/drei): Useful helpers for react-three-fiber by [@pmndrs](https://github.com/pmndrs) 225 | - [react-postprocessing](https://github.com/pmndrs/react-postprocessing): a postprocessing wrapper for @react-three/fiber by [@pmndrs](https://github.com/pmndrs) 226 | - [react-spring](https://www.react-spring.dev/): An awesome library about physically accurate animations. Works smoothly also for react-three-fiber using the package [`@react-spring/three`](https://www.react-spring.dev/docs/guides/react-three-fiber) 227 | - [framer-motion](https://www.framer.com/motion/): A nice animation library for react, and can be used with react-three-fiber too through the [`framer-motion-3d`](https://www.framer.com/motion/three-introduction/) package usage. Very nice for binding animation on entering and leaving the viewport element. 228 | 229 | ### Angular 230 | 231 | - [angular-three](https://github.com/nartc/angular-three): Declarative ThreeJS inspired by r3f for the Angular ecosystem 232 | by [@nartc](https://github.com/nartc) 233 | 234 | ### Vue 235 | 236 | - [trois](https://github.com/troisjs/trois): The equivalent of r3f for VueJS by [@troisjs](https://github.com/troisjs) 237 | - [TresJs](https://github.com/tresjs/tres): Declarative ThreeJS using Vue Components by [@tresjs_dev](https://github.com/Tresjs) 238 | - [Cientos](https://github.com/Tresjs/cientos): Collection of useful helpers and fully functional, ready-made abstractions for TresJs [@tresjs_dev](https://github.com/Tresjs) 239 | - [tres-post-processing](https://github.com/Tresjs/post-processing): Post-processing library for TresJs [@tresjs_dev](https://github.com/Tresjs) 240 | 241 | ### Svelte 242 | 243 | - [threlte](https://github.com/grischaerbe/threlte): A three.js component library for Svelte. 244 | - [svelte-cubed](https://github.com/Rich-Harris/svelte-cubed): Declarative ThreeJS for Svelte 245 | by [@Rich-Harris](https://github.com/Rich-Harris) 246 | 247 | ## Physics 248 | 249 | - [cannon-es](https://github.com/pmndrs/cannon-es) by [@pmndrs](https://github.com/pmndrs/) 250 | - [Ammo.js](https://github.com/kripken/ammo.js/) 251 | - [Oimo.js](https://lo-th.github.io/Oimo.js/#basic) 252 | - [Rapier](https://github.com/dimforge/rapier) by [@dimforge](https://github.com/dimforge/) 253 | 254 | ## Spatial querying & Raycasting 255 | 256 | - [three-mesh-bvh](https://github.com/gkjohnson/three-mesh-bvh) by [@gkjohnson](https://github.com/gkjohnson/): Highly effective way to check for collisions and to accelerate raycasting by the usage of bounding volume hierarchy. (Really a must have in your toolkit) 257 | 258 | ## Constructive Solid Geometry 259 | 260 | - [three-bvh-csg](https://github.com/gkjohnson/three-bvh-csg) by [@gkjohnson](https://github.com/gkjohnson/): A flexible, memory compact, fast and dynamic CSG implementation on top of three-mesh-bvh. (Amazing tool to perform some Boolean operations between meshes like intersection, difference, ...) 261 | 262 | ## Pathfinding 263 | 264 | - [Pathfinging.js](https://github.com/qiao/PathFinding.js) Useful library with tons of settings 265 | - [Three-pathfinging](https://github.com/donmccurdy/three-pathfinding) Three.js plugin for navigation 266 | - [Kompute](https://github.com/oguzeroglu/Kompute) Easy to use steering library 267 | 268 | ## Characters 269 | 270 | - [ossos](https://github.com/sketchpunklabs/ossos) A complete character skinning & animation library for the web 271 | - [mannequin.js](https://boytchev.github.io/mannequin.js/) Library for procedural character generation. Armature included 272 | 273 | # Demonstrations 274 | 275 | ## Water 276 | 277 | - [fft-ocean](https://github.com/jbouny/fft-ocean) Fast Fourier Transform ocean rendering for Three.js 278 | - [skunami.js](https://github.com/skeelogy/skunami.js/) Marvellous project with realistic water interaction 279 | - [Shallow water](https://vuoriov4.github.io/webgl-water-demo/) Demo project that shows water ripple effect 280 | 281 | ## Collision detection 282 | 283 | - [Axis-Aligned Bounding Boxes](https://github.com/mozdevs/gamedev-js-3d-aabb) AABB based collision detection 284 | - [Raycast based Collision detection](http://stemkoski.github.io/Three.js/Collision-Detection.html) 285 | 286 | # Community 287 | 288 | ## Core 289 | 290 | - [Stackoverflow ThreeJS](https://stackoverflow.com/questions/tagged/three.js): Forum where you can ask your questions ( 291 | be sure to search well before) 292 | - [Official ThreeJS Discord](https://discord.com/invite/56GBJwAnUS) 293 | - [Official ThreeJS Forum](https://discourse.threejs.org/) 294 | - [Official Slack](https://join.slack.com/t/threejs/shared_invite/zt-rnuegz5e-FQpc6YboDVW~5idlp7GfDw) 295 | - [Official Twitter](https://twitter.com/threejs) 296 | - [Official Reddit](https://www.reddit.com/r/threejs/) 297 | # Contribute 298 | 299 | Contributions welcome! Read the [contribution guidelines](contributing.md) first. 300 | 301 | Or you can reach me on Twitter: 302 | 303 | [](https://twitter.com/Axiome_CG) 304 | 305 | # Related Lists 306 | 307 | - [awesome-glsl](https://github.com/vanrez-nez/awesome-glsl) - A curated list of awesome GLSL resources. 308 | - [awesome-webgl](https://github.com/sjfricke/awesome-webgl) - A curated list of awesome WebGL libraries, resources and 309 | much more. 310 | - [awesome-webgpu](https://github.com/mikbry/awesome-webgpu) - A curated list of awesome WebGPU resources. 311 | - [awesome-opengl](https://github.com/eug/awesome-opengl) - A curated list of awesome OpenGL libraries, debuggers and 312 | resources. 313 | - [awesome-creative-coding](https://github.com/terkelg/awesome-creative-coding) - A carefully curated list of awesome 314 | creative coding resources primarily for beginners/intermediates. 315 | - [awesome-computer-vision](https://github.com/jbhuang0604/awesome-computer-vision) - A curated list of awesome computer 316 | vision resources. 317 | - [awesome-vulkan](https://github.com/vinjn/awesome-vulkan) - A curated list of awesome Vulkan projects and ecosystem. 318 | - [gamedev](https://github.com/ellisonleao/magictools) - A awesome list about game development. 319 | - [graphics-resources](https://github.com/mattdesl/graphics-resources) - A list of graphic programming resources. 320 | -------------------------------------------------------------------------------- /assets/awesome-threejs-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AxiomeCG/awesome-threejs/4bb878c42d6994f3654fe882d49661422731ab22/assets/awesome-threejs-logo.png -------------------------------------------------------------------------------- /code-of-conduct.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | In the interest of fostering an open and welcoming environment, we as 6 | contributors and maintainers pledge to making participation in our project and 7 | our community a harassment-free experience for everyone, regardless of age, body 8 | size, disability, ethnicity, gender identity and expression, level of experience, 9 | nationality, personal appearance, race, religion, or sexual identity and 10 | orientation. 11 | 12 | ## Our Standards 13 | 14 | Examples of behavior that contributes to creating a positive environment 15 | include: 16 | 17 | * Using welcoming and inclusive language 18 | * Being respectful of differing viewpoints and experiences 19 | * Gracefully accepting constructive criticism 20 | * Focusing on what is best for the community 21 | * Showing empathy towards other community members 22 | 23 | Examples of unacceptable behavior by participants include: 24 | 25 | * The use of sexualized language or imagery and unwelcome sexual attention or 26 | advances 27 | * Trolling, insulting/derogatory comments, and personal or political attacks 28 | * Public or private harassment 29 | * Publishing others' private information, such as a physical or electronic 30 | address, without explicit permission 31 | * Other conduct which could reasonably be considered inappropriate in a 32 | professional setting 33 | 34 | ## Our Responsibilities 35 | 36 | Project maintainers are responsible for clarifying the standards of acceptable 37 | behavior and are expected to take appropriate and fair corrective action in 38 | response to any instances of unacceptable behavior. 39 | 40 | Project maintainers have the right and responsibility to remove, edit, or 41 | reject comments, commits, code, wiki edits, issues, and other contributions 42 | that are not aligned to this Code of Conduct, or to ban temporarily or 43 | permanently any contributor for other behaviors that they deem inappropriate, 44 | threatening, offensive, or harmful. 45 | 46 | ## Scope 47 | 48 | This Code of Conduct applies both within project spaces and in public spaces 49 | when an individual is representing the project or its community. Examples of 50 | representing a project or community include using an official project e-mail 51 | address, posting via an official social media account, or acting as an appointed 52 | representative at an online or offline event. Representation of a project may be 53 | further defined and clarified by project maintainers. 54 | 55 | ## Enforcement 56 | 57 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 58 | reported by contacting the project team at . All 59 | complaints will be reviewed and investigated and will result in a response that 60 | is deemed necessary and appropriate to the circumstances. The project team is 61 | obligated to maintain confidentiality with regard to the reporter of an incident. 62 | Further details of specific enforcement policies may be posted separately. 63 | 64 | Project maintainers who do not follow or enforce the Code of Conduct in good 65 | faith may face temporary or permanent repercussions as determined by other 66 | members of the project's leadership. 67 | 68 | ## Attribution 69 | 70 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, 71 | available at [http://contributor-covenant.org/version/1/4][version] 72 | 73 | [homepage]: http://contributor-covenant.org 74 | [version]: http://contributor-covenant.org/version/1/4/ 75 | -------------------------------------------------------------------------------- /contributing.md: -------------------------------------------------------------------------------- 1 | # Contribution Guidelines 2 | 3 | Please note that this project is released with a 4 | [Contributor Code of Conduct](code-of-conduct.md). By participating in this 5 | project you agree to abide by its terms. 6 | 7 | --- 8 | 9 | Ensure your pull request adheres to the following guidelines: 10 | 11 | - Make sure that your submission is really awesome. Awesome lists are curations of the best, not everything. 12 | - Try to add a short description of the link you are adding by following the convention. Try to credit the author(s) by linking a Twitter/GitHub profile (or website/portfolio): 13 | 14 | For example 15 | ```markdown 16 | - [Name of the resource]():