├── .travis.yml
├── CONTRIBUTING.md
├── LICENSE
├── Libraries
├── CONTRIBUTING.md
├── Features.md
├── File_Size.md
└── README.md
├── README.md
├── code-of-conduct.md
└── webgl_logo.png
/.travis.yml:
--------------------------------------------------------------------------------
1 | language: ruby
2 | rvm:
3 | - 2.2
4 | before_script:
5 | - gem install awesome_bot
6 | script:
7 | - awesome_bot README.md --allow-dupe --white-list https://github.com/WebGLInsights/WebGLInsights.github.io/releases/download/v1.0/WebGL.Insights.-.Patrick.Cozzi.pdf,https://www.facebook.com/groups/webgl/about/
8 | - awesome_bot Libraries/Features.md --allow-dupe
9 | - awesome_bot Libraries/File_Size.md --allow-dupe
10 | notifications:
11 | email: false
12 |
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # Contribution Guidelines
2 |
3 | Please ensure your pull request adheres to the following guidelines:
4 |
5 | > If you forget any of these I will nicely ask you to change it in the pull request.
6 |
7 | # Updating [README.md](https://github.com/sjfricke/awesome-webgl/blob/master/README.md)
8 |
9 | - Make an individual pull request for each suggestion.
10 | - You can either add a link or new categories, or improvements... all are welcome.
11 | - If you have other ideas for discussion please leave an issue.
12 | - Use the following format: \[NAME\]\(LINK\) - DESCRIPTION.
13 | - Keep descriptions simple.
14 | - Titles should be [capitalized](http://grammar.yourdictionary.com/capitalization/rules-for-capitalization-in-titles.html).
15 | - Make pull request titles descriptive i.e. not `Updated README`.
16 | - Link additions should be added to the bottom of the relevant category.
17 | - New sub-category are placed in alphabetical order.
18 | - New entries for the libraries/frameworks section are placed in alphabetical order.
19 | - New categories or improvements to the existing categorization are welcome.
20 | - Check your spelling and grammar.
21 | - Make sure your text editor is set to remove trailing whitespace.
22 | - End all descriptions with a period.
23 | - No Amazon affiliate codes in links for books.
24 | - Add authors in book listing with `by **Author**` format.
25 |
26 | # How to contribute from GitHub.com
27 |
28 | - Make sure you have a free [GitHub.com](https://github.com/join) account and you are logged in.
29 | - Find an appropriate topic category in the [README.md](https://github.com/sjfricke/awesome-webgl/blob/master/README.md) file to add it under, or add your own if you think it is needed.
30 | - Click the :pencil: button [Edit link](https://github.com/sjfricke/awesome-webgl/edit/master/README.md) on the top right-hand corner of the README.md. This will do two things:
31 | - Fork the repository to your account.
32 | - Create a new branch so you can send your changes in a pull request.
33 | - Add your changes.
34 | - Scroll down to the `Propose file change` box and write a commit message and optional extended description.
35 | - Click the `Propose file change` button.
36 |
37 | > NOTE: this works the same for any of the files
38 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | CC0 1.0 Universal
2 |
3 | Statement of Purpose
4 |
5 | The laws of most jurisdictions throughout the world automatically confer
6 | exclusive Copyright and Related Rights (defined below) upon the creator and
7 | subsequent owner(s) (each and all, an "owner") of an original work of
8 | authorship and/or a database (each, a "Work").
9 |
10 | Certain owners wish to permanently relinquish those rights to a Work for the
11 | purpose of contributing to a commons of creative, cultural and scientific
12 | works ("Commons") that the public can reliably and without fear of later
13 | claims of infringement build upon, modify, incorporate in other works, reuse
14 | and redistribute as freely as possible in any form whatsoever and for any
15 | purposes, including without limitation commercial purposes. These owners may
16 | contribute to the Commons to promote the ideal of a free culture and the
17 | further production of creative, cultural and scientific works, or to gain
18 | reputation or greater distribution for their Work in part through the use and
19 | efforts of others.
20 |
21 | For these and/or other purposes and motivations, and without any expectation
22 | of additional consideration or compensation, the person associating CC0 with a
23 | Work (the "Affirmer"), to the extent that he or she is an owner of Copyright
24 | and Related Rights in the Work, voluntarily elects to apply CC0 to the Work
25 | and publicly distribute the Work under its terms, with knowledge of his or her
26 | Copyright and Related Rights in the Work and the meaning and intended legal
27 | effect of CC0 on those rights.
28 |
29 | 1. Copyright and Related Rights. A Work made available under CC0 may be
30 | protected by copyright and related or neighboring rights ("Copyright and
31 | Related Rights"). Copyright and Related Rights include, but are not limited
32 | to, the following:
33 |
34 | i. the right to reproduce, adapt, distribute, perform, display, communicate,
35 | and translate a Work;
36 |
37 | ii. moral rights retained by the original author(s) and/or performer(s);
38 |
39 | iii. publicity and privacy rights pertaining to a person's image or likeness
40 | depicted in a Work;
41 |
42 | iv. rights protecting against unfair competition in regards to a Work,
43 | subject to the limitations in paragraph 4(a), below;
44 |
45 | v. rights protecting the extraction, dissemination, use and reuse of data in
46 | a Work;
47 |
48 | vi. database rights (such as those arising under Directive 96/9/EC of the
49 | European Parliament and of the Council of 11 March 1996 on the legal
50 | protection of databases, and under any national implementation thereof,
51 | including any amended or successor version of such directive); and
52 |
53 | vii. other similar, equivalent or corresponding rights throughout the world
54 | based on applicable law or treaty, and any national implementations thereof.
55 |
56 | 2. Waiver. To the greatest extent permitted by, but not in contravention of,
57 | applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and
58 | unconditionally waives, abandons, and surrenders all of Affirmer's Copyright
59 | and Related Rights and associated claims and causes of action, whether now
60 | known or unknown (including existing as well as future claims and causes of
61 | action), in the Work (i) in all territories worldwide, (ii) for the maximum
62 | duration provided by applicable law or treaty (including future time
63 | extensions), (iii) in any current or future medium and for any number of
64 | copies, and (iv) for any purpose whatsoever, including without limitation
65 | commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes
66 | the Waiver for the benefit of each member of the public at large and to the
67 | detriment of Affirmer's heirs and successors, fully intending that such Waiver
68 | shall not be subject to revocation, rescission, cancellation, termination, or
69 | any other legal or equitable action to disrupt the quiet enjoyment of the Work
70 | by the public as contemplated by Affirmer's express Statement of Purpose.
71 |
72 | 3. Public License Fallback. Should any part of the Waiver for any reason be
73 | judged legally invalid or ineffective under applicable law, then the Waiver
74 | shall be preserved to the maximum extent permitted taking into account
75 | Affirmer's express Statement of Purpose. In addition, to the extent the Waiver
76 | is so judged Affirmer hereby grants to each affected person a royalty-free,
77 | non transferable, non sublicensable, non exclusive, irrevocable and
78 | unconditional license to exercise Affirmer's Copyright and Related Rights in
79 | the Work (i) in all territories worldwide, (ii) for the maximum duration
80 | provided by applicable law or treaty (including future time extensions), (iii)
81 | in any current or future medium and for any number of copies, and (iv) for any
82 | purpose whatsoever, including without limitation commercial, advertising or
83 | promotional purposes (the "License"). The License shall be deemed effective as
84 | of the date CC0 was applied by Affirmer to the Work. Should any part of the
85 | License for any reason be judged legally invalid or ineffective under
86 | applicable law, such partial invalidity or ineffectiveness shall not
87 | invalidate the remainder of the License, and in such case Affirmer hereby
88 | affirms that he or she will not (i) exercise any of his or her remaining
89 | Copyright and Related Rights in the Work or (ii) assert any associated claims
90 | and causes of action with respect to the Work, in either case contrary to
91 | Affirmer's express Statement of Purpose.
92 |
93 | 4. Limitations and Disclaimers.
94 |
95 | a. No trademark or patent rights held by Affirmer are waived, abandoned,
96 | surrendered, licensed or otherwise affected by this document.
97 |
98 | b. Affirmer offers the Work as-is and makes no representations or warranties
99 | of any kind concerning the Work, express, implied, statutory or otherwise,
100 | including without limitation warranties of title, merchantability, fitness
101 | for a particular purpose, non infringement, or the absence of latent or
102 | other defects, accuracy, or the present or absence of errors, whether or not
103 | discoverable, all to the greatest extent permissible under applicable law.
104 |
105 | c. Affirmer disclaims responsibility for clearing rights of other persons
106 | that may apply to the Work or any use thereof, including without limitation
107 | any person's Copyright and Related Rights in the Work. Further, Affirmer
108 | disclaims responsibility for obtaining any necessary consents, permissions
109 | or other rights required for any use of the Work.
110 |
111 | d. Affirmer understands and acknowledges that Creative Commons is not a
112 | party to this document and has no duty or obligation with respect to this
113 | CC0 or use of the Work.
114 |
115 | For more information, please see
116 |
--------------------------------------------------------------------------------
/Libraries/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # Contribution Guidelines
2 |
3 | Please ensure your pull request adheres to the following guidelines:
4 |
5 | > If you forget any of these I will nicely ask you to change it in the pull request.
6 |
7 | **NOTE:** Just because the library isn't in the README.md file doesn't mean it can't be in the Libraries.md file
8 |
9 | # Updating [Features.md](https://github.com/sjfricke/awesome-webgl/blob/master/Libraries/Features.md)
10 |
11 | - Always keep lines aligned vertically to make it easier to edit.
12 | - Feel free to edit/add in the Column Key.
13 | - If adding or removing a mark from the table please acknowledge why you made that decision in your pull request description.
14 | - If adding, put the `**X**` left aligned in the box.
15 | - If adding a library make sure it is in alphabetical order.
16 | - Also make the name linked to the libraries' main page.
17 | - If adding a column you need to do the following:
18 | - Make sure it is placed in alphabetical order.
19 | - add the spaces to each row for that column (Alt+Shift in Notepad++ takes care of that easily).
20 | - Add in the Column Key in the alphabetical order and give description for what that column means.
21 | - Use the `[Category](#category)` format to link it to the Column Key.
22 |
23 | # Updating [File_Size.md](https://github.com/sjfricke/awesome-webgl/blob/master/Libraries/File_Size.md)
24 |
25 | - Always keep lines aligned vertically to make it easier to edit.
26 | - All items in cell are left aligned.
27 | - If adding a library make sure it is in alphabetical order.
28 | - Also make the name linked to the libraries' main page.
29 | - All sizes are listed as either:
30 | - MB with 2 decimal places.
31 | - (Example: 3.23)
32 | - KB as MB with leading zero and 3 decimal.
33 | - (Example: 0.304)
34 |
35 | > **MATH NOTE**: 400KB != 0.400MB
36 | >
37 | > You need to divide by 1024
38 | >
39 | > So 400KB is 400 / 1024 = 0.332MB
40 |
41 | # How to contribute from GitHub.com
42 |
43 | - Make sure you have a free GitHub.com account and you are logged in.
44 | - Find an appropriate topic category in the [README.md](https://github.com/sjfricke/awesome-webgl/blob/master/README.md) file to add it under, or add your own if you think it is needed.
45 | - Click the :pencil: button [Edit link](https://github.com/sjfricke/awesome-webgl/edit/master/README.md) on the top right-hand corner of the README.md. This will do two things:
46 | - Fork the repository to your account.
47 | - Create a new branch so you can send your changes in a pull request.
48 | - Add your changes.
49 | - Scroll down to the `Propose file change` box and write a commit message and optional extended description.
50 | - Click the `Propose file change` button.
51 |
52 | > NOTE: this works the same for any of the files
53 |
--------------------------------------------------------------------------------
/Libraries/Features.md:
--------------------------------------------------------------------------------
1 | # WebGL Libraries - Features
2 |
3 | ## TODO- Work in progress
4 |
5 | Libraries/Frameworks all have one goal: **Use abstraction to allow you to spend more time developing the features of your application**
6 |
7 | With this, we are not here to judge or say which library is "better" as that is not a feasible question to answer. So what we **can** offer is a chart to show you what each library has to offer in terms of things it will help abstracts for you
8 |
9 | > **X** -> Supports features
10 |
11 | | Libraries |[2D](#2d-images)|[2D Text](#2d-text)|[Animation](#animation)|[Audio](#audio)|[Exporting](#exporting)|[Importing](#importing)|[Math](#math)|[Modeling](#modeling)|[Point Cloud](#point-cloud)|[Physics](#physics)|[Rendering](#rendering)|[Shaders](#shaders)|[Texturing](#texturing)|[WebVR](#webvr)|
12 | |-------------------------------------------------------------------------|:--------------:|:-----------------:|:---------------------:|:-------------:|:---------------------:|:---------------------:|:-----------:|:-------------------:|:-------------------------:|:-----------------:|:---------------------:|:-----------------:|:---------------------:|:-------------:|
13 | |[library 1](#) | | |**X** |**X** | |**X** | | | | | | | |**X** |
14 | |[Library 2](#) | | | | | | | | | |**X** | | | | |
15 |
16 | ## Column Key
17 |
18 | ### 2D Images
19 | - Supports adding 2D images or sprites as a 2D element.
20 |
21 | ### 2D Text
22 | - Supports adding text into the scene as a 2D element.
23 |
24 | ### Animation
25 | - Supports animation of models.
26 |
27 | ### Audio
28 | - Supports loading in audio.
29 |
30 | ### Exporting
31 | - Supports exporting models or scenes to file or other formats.
32 |
33 | ### Importing
34 | - Supports importing of 3D models and/or images.
35 |
36 | ### Math
37 | - Supports with all the fun matrix and vector math.
38 |
39 | ### Modeling
40 | - Supports modeling 3D objects.
41 |
42 | ### Point Cloud
43 | - Supports showing or using point cloud data.
44 |
45 | ### Physics
46 | - Supports a physics engine for simulation.
47 |
48 | ### Rendering
49 | - Supports advance features for rendering.
50 |
51 | ### Shaders
52 | - Supports creating your own shaders for use in project.
53 |
54 | ### Texturing
55 | - Supports adding textures to models and materials.
56 |
57 | ### WebVR
58 | - Supports the ability to be display WebVR on mobile devices.
--------------------------------------------------------------------------------
/Libraries/File_Size.md:
--------------------------------------------------------------------------------
1 | # WebGL Libraries - File Size
2 |
3 | Sometimes load time is a factor in picking a library so here is a list of the different size presented by each library/framework
4 |
5 | | Libraries |Version |Uncompressed Size (MB)|Minified Size (MB) |Notes |
6 | |-------------------------------------------------------------------------|:------------:|:--------------------:|:---------------------:|:--------------------------------------------:|
7 | |[A-Frame](https://aframe.io/) |0.8.2 |2.03 |1.05 | |
8 | |[Ammo.js](https://github.com/kripken/ammo.js/) |2.82 |Only Minified |1.57 | |
9 | |[Babylon.js](https://www.babylonjs.com/) |3.2 |3.41 to 4.66 |1.78 to 2.95 |Can generate custom builds, showing ranges |
10 | |[CopperLicht](https://www.ambiera.com/copperlicht/index.html) |1.15 |Only Minified |0.432 | |
11 | |[Cesium](https://cesiumjs.org/) |1.48 |10.0 |2.83 | |
12 | |[GLGE](http://www.glge.org/) |0.9 |0.719 |0.358 | |
13 | |[glMatrix](http://glmatrix.net/) |2.7.0 |0.166 |0.046 | |
14 | |[PicoGL.JS](https://tsherif.github.io/picogl.js/) |0.6.5 |0.113 |0.053 | |
15 | |[PixiJS](http://www.pixijs.com/) |4.8.1 |1.28 |0.412 | |
16 | |[Regl](http://regl.party/) |1.3.1 |0.261 |0.071 | |
17 | |[Scene.js](http://scenejs.org/) |4.2.0 |0.549 |0.235 | |
18 | |[Sylvester](http://sylvester.jcoglan.com/) |0.1.3 |0.043 |0.013 | |
19 | |[Three.js](https://threejs.org/) |r95 |1.05 |0.521 | |
20 | |[TWGL](http://twgljs.org/) |4.4.0 |0.220 to 0.330 |0.023 to 0.067 |There is a TWGL and TWGL-full version |
21 | |[Whitestorm.js](https://whs.io/) |2.1.6 |0.262 |0.084 | |
22 |
--------------------------------------------------------------------------------
/Libraries/README.md:
--------------------------------------------------------------------------------
1 | # Awesome WebGL - Libaries/Frameworks [](https://github.com/sindresorhus/awesome)
2 |
3 | This section is created because a list of the vast amount of libraries/frameworks out there sometimes is not helpful. We respect every library and we want to give a fair way to help you find the library that best fits your needs quicker.
4 |
5 | This folder contains different metrics to compare libraries/frameworks on different **quantitative** attributes.
6 |
7 | ## Different metrics
8 | * [Features](https://github.com/sjfricke/awesome-webgl/blob/master/Libraries/Features.md)
9 | * [File Size](https://github.com/sjfricke/awesome-webgl/blob/master/Libraries/File_Size.md)
10 |
11 | ## Contributing to the Library/Framework section
12 | Please see [CONTRIBUTING](https://github.com/sjfricke/awesome-webgl/blob/master/Libraries/CONTRIBUTING.md) for details.
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Awesome WebGL [](https://github.com/sindresorhus/awesome)
2 |
3 | [
](https://www.khronos.org/webgl/)
4 |
5 | This is a curated list of awesome WebGL libraries, resources and much more.
6 |
7 | ## What is WebGL
8 |
9 | WebGL (Web Graphics Library) is a JavaScript API for rendering interactive 3D computer graphics and 2D graphics within
10 | any compatible web browser without the use of plug-ins. WebGL is integrated completely into all the web standards
11 | of the browser allowing GPU accelerated usage of physics and image processing and effects as part of the web page canvas.
12 |
13 | WebGL elements can be mixed with other HTML elements and composited with other parts of the page or page background.
14 | WebGL programs consist of control code written in JavaScript and shader code that is executed on a computer's Graphics
15 | Processing Unit (GPU).
16 |
17 | ## Contents
18 | * [WebGL](#webgl)
19 | * [WebGL 2](#webgl-2)
20 | * [WebVR](#webvr)
21 | * [Libraries](#libraries)
22 | * [Community](#community)
23 |
24 | ## WebGL
25 |
26 | > All things dealing with WebGL
27 |
28 | ### WebGL sub-categories
29 | * [Articles](#articles)
30 | * [Blog Series](#blog-series)
31 | * [Books](#books)
32 | * [Bug Reporting](#bug-reporting)
33 | * [GLSL Editors](#glsl-editors)
34 | * [References](#references)
35 | * [Talks](#talks)
36 | * [Tools/Debugging](#toolsdebugging)
37 | * [Chrome Specific Tools/Debugger](#chrome-specific-toolsdebugger)
38 | * [Firefox Specific Tools/Debugger](#firefox-specific-toolsdebugger)
39 | * [Tutorials](#tutorials)
40 | * [Videos](#videos)
41 |
42 | ### Articles
43 |
44 | > WebGL articles and/or blog posts (non-tutorials)
45 |
46 | * [Context Loss & Preloading](https://medium.com/@mattdesl/non-intrusive-webgl-cebd176c281d#.gyc6h9mr5) - How to manage WebGL when you run into the dreaded context lost.
47 | * [WebGL Off the Main Thread](https://hacks.mozilla.org/2016/01/webgl-off-the-main-thread/) - How to use Web Workers in WebGL.
48 | * [Optimizing Scenes for Better WebGL Performance](https://www.soft8soft.com/docs/manual/en/introduction/Optimizing-WebGL-performance.html) - optimization techniques that proved to work well for creating WebGL-based interactives.
49 | * [First steps in WebGL](https://dev.to/aralroca/first-steps-in-webgl-385c) - Learn what WebGL is and how it works by drawing a triangle.
50 |
51 | ### Blog Series
52 |
53 | > Blog series of WebGL topics
54 |
55 | * [Codeflow](http://codeflow.org/tags/webgl.html) - Many blogs on different tricks and techniques.
56 | * [Real-Time Rendering](http://www.realtimerendering.com/blog/tag/webgl/) - This is the blog for the book _Real-Time Rendering_.
57 | * [WebGL Best Practices](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API/WebGL_best_practices) - Mozilla's offical set of best practices.
58 | * [WebGL Insights](http://webglinsights.blogspot.com/) - This is the blog for the book _WebGL Insights_.
59 | * [WebGL Month](https://github.com/lesnitsky/webgl-month) – Daily WebGL tutorial for a month.
60 | * [WebGL Image Processing](https://maximmcnair.com/webgl-image-processing) - Covers a range of _Image Processing_ algorithms in WebGL such as Color Correction, Blend Modes, Thresholding, Dithering, Convolution and Film Grain.
61 |
62 | ### Books
63 |
64 | > Popular books about WebGL
65 |
66 | * [Interactive Computer Graphics: A Top-Down Approach with WebGL](https://www.amazon.com/Interactive-Computer-Graphics-Top-Down-Approach/dp/0133574849) by **Edward Angel** and **Dave Shreiner** - Suitable for undergraduate students in computer science and engineering, for students in other disciplines who have good programming skills, and for professionals interested in computer animation and graphics using the latest version of WebGL.
67 | * [Professional WebGL Programming](https://www.amazon.com/Professional-WebGL-Programming-Developing-Graphics/dp/1119968860) by **Andreas Anyuru** - Everything you need to know about developing hardware-accelerated 3D graphics with WebGL.
68 | * [Programming 3D Applications with HTML5 and WebGL](https://www.amazon.com/Programming-Applications-HTML5-WebGL-Visualization/dp/1449362966) by **Tony Parisi** - Create high-performance, visually stunning 3D applications for the Web, using HTML5 and related technologies such as CSS3 and WebGL—the emerging web graphics standard.
69 | * [WebGL Beginner's guide](https://www.amazon.com/WebGL-Beginners-Guide-Diego-Cantor/dp/184969172X) by **Diego Cantor** and **Brandon Jones** - For JavaScript developer who wants to take the plunge into 3D web development via WebGL.
70 | * [WebGL Hotshot](https://www.amazon.com/WebGL-Hotshot-Mitch-Williams-ebook/dp/B00KLAJ65Y) by **Mitch Williams** - For web designer looking to expand your knowledge of 3D graphics concepts and broaden your existing skill set.
71 | * [WebGL Insights](https://github.com/WebGLInsights/WebGLInsights.github.io/releases/download/v1.0/WebGL.Insights.-.Patrick.Cozzi.pdf) by **Patrick Cozzi** - Presents real-world techniques for intermediate and advanced WebGL developers by assembling contributions from experienced WebGL engine and application developers, GPU vendors, browser developers, researchers, and educators.
72 | * [Book's Personal Site](http://www.webglinsights.com/)
73 | * [WebGL Programming Guide: Interactive 3D Graphics Programming with WebGL](https://www.amazon.com/WebGL-Programming-Guide-Interactive-Graphics/dp/0321902920) by **Kouichi Matsuda** and **Rodger Lea** - WebGL Programming Guide will help you get started quickly with interactive WebGL 3D programming, even if you have no prior knowledge of HTML5, JavaScript, 3D graphics, mathematics, or OpenGL.
74 |
75 | ### Bug Reporting
76 |
77 | > Reporting bugs helps everyone in long run
78 |
79 | * [Chrome Bug Report](https://bugs.chromium.org/p/chromium/issues/list) - Chrome related bugs
80 | * [Khronos Github Issue Page](https://github.com/KhronosGroup/WebGL/issues) - Spec or Conformance related bugs
81 | * [Mozilla BugZilla](https://bugzilla.mozilla.org) - Firefox related bugs
82 | * [WebKit Bugzilla](https://bugs.webkit.org/enter_bug.cgi?assigned_to=cmarrin%40apple.com&attachurl=&blocked=&bug_file_loc=http%3A%2F%2F&bug_severity=Normal&bug_status=NEW&comment=&component=WebGL&contenttypeentry=&contenttypemethod=autodetect&contenttypeselection=text%2Fplain&data=&dependson=&description=&flag_type-1=X&flag_type-3=X&form_name=enter_bug&keywords=&maketemplate=Remember%20values%20as%20bookmarkable%20template&op_sys=Mac%20OS%20X%2010.5&priority=P2&product=WebKit&rep_platform=PC&short_desc=&version=528%2B%20%28Nightly%20build%29) - Safari related bugs
83 |
84 | ### GLSL Editors
85 |
86 | > Online GLSL Editors
87 | >
88 | > NOTE: [WebGL must conform to The OpenGL ES Shading Language, Version 1.00](https://www.khronos.org/registry/webgl/specs/1.0.3/#4.3)
89 | >
90 | > [Official Specs for GLSL Version 1.00](https://www.khronos.org/registry/OpenGL/specs/es/2.0/GLSL_ES_Specification_1.00.pdf)
91 | >
92 | > [Official Specs for Open ES Version 2.0.25](https://www.khronos.org/registry/OpenGL/specs/es/2.0/es_full_spec_2.0.pdf)
93 |
94 | * [Fractal Lab](http://hirnsohle.de/test/fractalLab/) - Online fractal explorer allowing you to explore 2D and 2D fractal.
95 | * [GLSL Sandbox](http://glslsandbox.com) - Online live editor for fragment shaders.
96 | * [GLSLbin](http://glslb.in) - Fragment shader sandbox supporting [glslify](https://github.com/glslify/glslify).
97 | * [Shader Toy](https://www.shadertoy.com) - Most popular live editor for fragment shaders.
98 | * [ShaderFrog](https://shaderfrog.com/) - WebGL Shader Editor and Composer.
99 | * [SHDR Editor](http://shdr.bkcore.com) - Live GLSL shader editor, viewer and validator.
100 | * [ShaderExpo](https://anuraghazra.github.io/ShaderExpo/) - Dependency free shader editor featuring inline error logs, auto completions, models and textures loading.
101 |
102 | ### References
103 |
104 | > WebGL references
105 |
106 | * [Google Project ANGLE](https://github.com/google/angle) - Default WebGL backend for both Google Chrome and Mozilla Firefox on Windows platforms.
107 | * [Khronos Official Wiki](https://www.khronos.org/webgl/wiki/) - The official wiki for WebGL.
108 | * [WebVR Community Group](https://www.w3.org/community/immersive-web/) - Group who's goal is to help bring high-performance Virtual Reality to the open Web.
109 | * [WebGL Errata](https://www.khronos.org/webgl/wiki/Errata_to_the_WebGL_Specification) - Known bugs in graphics drivers affect the conformance suite, and consequently, portability of code.
110 | * [WebGL Extensions](https://www.khronos.org/registry/webgl/extensions/) - List of extensions for WebGL
111 | * [WebGL Reference Card](https://www.khronos.org/files/webgl/webgl-reference-card-1_0.pdf) - WebGL 1.0 API Quick Reference Card for printing.
112 | * [WebGL Source Code](https://github.com/KhronosGroup/WebGL) - Source code to both view and contribute.
113 | * [WebGL Spec Sheet](https://www.khronos.org/registry/webgl/specs/1.0/) - All the detailed information about WebGL.
114 |
115 |
116 | ### Talks
117 |
118 | > WebGL related talks
119 |
120 | * [List of Presentations](https://www.khronos.org/webgl/wiki/Presentations) - List presented by Khronos of various WebGL related presentations.
121 | * [Next-Generation 3D Graphics on the Web](https://www.youtube.com/watch?v=K2JzIUIHIhc) - Talk at Google I/O 19 from Ricardo Cabello (MrDoob).
122 |
123 | ### Tools/Debugging
124 |
125 | > Tools for development and debugging WebGL
126 |
127 | * [Khronos Dev Tools](https://github.com/KhronosGroup/WebGLDeveloperTools) - Useful WebGL developer tools, intended to be used as an ES6 module.
128 | * [Spector.js](https://spector.babylonjs.com/) - Agnostic JavaScript framework for exploring and troubleshooting your WebGL scenes.
129 | * [WebGL Inspector](http://benvanik.github.io/WebGL-Inspector/) - Tool inspired by gDEBugger and PIX with the goal of making the development of advanced WebGL applications easier.
130 | * [WebGl Playground](http://jessevdk.github.io/webgl-play/) - The editor lets you work on the JavaScript code and the GLSL vertex/fragment shaders (if you have any) at the same time in a convenient way. Everything is organized, formatted and highlighted properly, just as you would like.
131 | * [WebGL Report](http://webglreport.com/?v=1) - Way to view the details of what your browser supports for WebGL.
132 | * [WebGL Support Stats](http://webglstats.com/) - Interactive dashboard showing the support for WebGL features in different browsers and devices.
133 | * [WebGL Texture Tester](http://toji.github.io/texture-tester/) - Attempts to load one of every texture format supported by WebGL, intended to quickly show which formats your browser/device supports.
134 | * [Web Tracing Framework](http://google.github.io/tracing-framework/index.html) - Set of libraries, tools, and visualizers for the tracing and investigation of complex web applications.
135 |
136 | #### Chrome Specific Tools/Debugger
137 |
138 | * [GLSL Shader Editor Extension](https://github.com/spite/ShaderEditorExtension) - Chrome DevTools extension to help you edit shaders live in the browser.
139 | * [Spector.js Extension](https://chrome.google.com/webstore/detail/spectorjs/denbgaamihkadbghdceggmchnflmhpmk) - Explore and Troubleshoot your WebGL and WebGL2 scenes easily.
140 | * [Webgl Insight](https://github.com/3Dparallax/insight) - Chrome extension WebGL debugging toolkit providing a variety of capabilities.
141 |
142 | #### Firefox Specific Tools/Debugger
143 |
144 | * [Canvas Debugger](https://hacks.mozilla.org/2014/03/introducing-the-canvas-debugger-in-firefox-developer-tools/) - Quick tutorial how to use Firefox's developer tools to debug WebGL Shaders.
145 | * [Firefox Developer Tools](https://developer.mozilla.org/en-US/docs/Tools) - The official list of all of Firefox's debugger tools.
146 | * [Shader Editor](https://hacks.mozilla.org/2013/11/live-editing-webgl-shaders-with-firefox-developer-tools/) - Quick tutorial how to use Firefox's developer tools to debug WebGL Shaders.
147 |
148 | ### Tutorials
149 |
150 | > Online WebGL Tutorials (non-video)
151 |
152 | * [Directional Shadow Mapping](http://chinedufn.com/webgl-shadow-mapping-tutorial/) - Concepts behind real time directional light shadow mapping.
153 | * [Get Started Tutorial](https://www.khronos.org/webgl/wiki/Tutorial) - Khronos' tutorial how to get up and running with WebGL.
154 | * [Getting Started with WebGL](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API/Tutorial/Getting_started_with_WebGL) - Mozilla Foundation guide to getting started with WebGL.
155 | * [Learn WebGL](https://www.tutorialspoint.com/webgl/index.htm) - Tutorials Point set of article to get you familiar with WebGL terms.
156 | * [Learning WebGL](http://learningwebgl.com/blog/?page_id=1217) - Tutorials from the author of _WebGL Up and Running_.
157 | * [Multitexturing using a Blendmap](http://chinedufn.com/webgl-multitexture-blend-map-tutorial/) - How to use a blendmap to multitexture a terrain.
158 | * [Particle Effects via Billboards](http://chinedufn.com/webgl-particle-effect-billboard-tutorial/) - Create particle effects by applying a technique called billboarding.
159 | * [The Book of Shaders](https://thebookofshaders.com/) - Gentle step-by-step guide through the abstract and complex universe of Fragment Shaders.
160 | * [WebGL Academy](http://www.webglacademy.com/) - Simplified online IDE with automatic indentation, syntax highlighting for HTML, Javascript, GLSL and Python. You can run your code and download your projects.
161 | * [WebGL Fundamentals](https://webglfundamentals.org/) - Series of online tutorials with code samples and live demonstrations.
162 | * [WebGL Workshop](http://webgl-workshop.com/) - Interactive workshop to get you up and running with WebGL.
163 |
164 | ### Videos
165 |
166 | > WebGL Related Videos
167 |
168 | * [An Introduction to WebGL Programming](https://www.youtube.com/watch?v=tgVLb6fOVVc&feature=youtu.be) - 3 hour overview of WebGL by SIGGRAPH University.
169 | * [WebGL Tutorials - YouTube](https://www.youtube.com/playlist?list=PLjcVFFANLS5zH_PeKC6I8p0Pt1hzph_rt) - Series of lecture style video tutorials from Indigo Code on YouTube.
170 |
171 | ## WebGL 2
172 |
173 | > Information about the upcoming WebGL 2 specs
174 | >
175 | > Anything pertaining to WebGL in general is found in the [WebGL](#WebGL) section
176 |
177 | ### WebGL 2 sub-categories
178 | * [Articles](#articles-1)
179 | * [References](#references-1)
180 | * [Tutorials](#tutorials-1)
181 | * [Videos](#videos-1)
182 |
183 | ### Articles
184 |
185 | > WebGL 2 articles and/or blog posts (non-tutorials)
186 |
187 | * [WebGL 2 What's New](https://webgl2fundamentals.org/webgl/lessons/webgl2-whats-new.html) - Look into the new features added in WebGL 2.
188 | * [What's Coming in WebGL 2.0](https://blog.tojicode.com/2013/09/whats-coming-in-webgl-20.html) - Look into the upcoming features of WebGL 2.
189 | * [WebGL 2 SIGGRAPH Asia 2015](https://docs.google.com/presentation/d/1Orx0GB0cQcYhHkYsaEcoo5js3c5-pv7ahPniIRIzzfg/edit#slide=id.p) - Presentation by Zhenyao Mo, Ken Russell of Google during SIGGRAPH Asia 2015.
190 | * [WebGL 2 Lands in Firefox](https://hacks.mozilla.org/2017/01/webgl-2-lands-in-firefox/) - Information the support for WebGL 2 starting with Firefox 51.
191 | * [WebGL 2 Basics](http://www.realtimerendering.com/blog/webgl-2-basics/) - Blog post about getting started with WebGL 2.
192 | * [WebGL 2 New Features](http://www.realtimerendering.com/blog/webgl-2-new-features/) - Blog post about whats new and cool in WebGl 2.
193 |
194 | ### References
195 |
196 | > WebGL 2 references
197 |
198 | * [WebGL 2 Spec Sheet (Editor Draft)](https://www.khronos.org/registry/webgl/specs/latest/2.0/) - All the detailed information about WebGL 2.
199 | * [WebGL 2 Reference Card](https://www.khronos.org/files/webgl20-reference-guide.pdf) - WebGL 2.0 API Quick Reference Card for printing.
200 | * [WebGL 2 Compatible Chart](https://caniuse.com/#feat=webgl2) - Chart to show current browsers supporting WebGL 2
201 |
202 | ### Tutorials
203 | * [WebGL 2 Fundamentals](https://webgl2fundamentals.org/)- Series of online tutorials with code samples and live demonstrations.
204 | * [WebGL 2 Samples](http://webglsamples.org/WebGL2Samples/) - Great source of many different WebGL 2 work with very good commenting.
205 | * [WebGL 2 Examples](https://github.com/tsherif/webgl2examples) - Rendering algorithms implemented in raw WebGL 2.
206 |
207 | ### Videos
208 |
209 | > WebGL related Videos
210 |
211 | * [Fun with WebGL 2.0](https://www.youtube.com/playlist?list=PLMinhigDWz6emRKVkVIEAaePW7vtIkaIF) - Video tutorial series on getting started with WebGL 2, still actively adding videos.
212 | * [WebGL 2.0 is Here: What You Need To Know](https://www.youtube.com/watch?v=Xf65duJ_QFs) - Khronos Webinar April 2017.
213 | * [Slides](https://www.khronos.org/assets/uploads/developers/library/2017-webgl-webinar/Khronos-Webinar-WebGL-20-is-here_What-you-need-to-know_Apr17.pdf)
214 |
215 | ## WebVR
216 |
217 | > Information about different parts of the new and upcoming WebVR ecosystem
218 | >
219 | > All items related to more developers and less on where to find WebVR content as entertainment
220 |
221 | ### WebVR sub-categories
222 |
223 | * [Articles](#articles-2)
224 | * [Blog Series](#blog-series-1)
225 | * [Platforms](#platforms)
226 | * [References](#references-2)
227 |
228 | ### Articles
229 |
230 | > WebVR articles and/or blog posts (non-tutorials)
231 |
232 | ### Blog Series
233 |
234 | > Maintained blog series of WebVR focused topics
235 |
236 | * [Mozilla VR Blog](https://blog.mozvr.com/) - WebVR focused blog from makers of Firefox.
237 |
238 | ### Platforms
239 |
240 | > WebVR designed platforms to experience
241 |
242 | * [JanusVR](https://janusvr.com/) - Webpages as collaborative 3D webspaces interconnected by portals.
243 |
244 | ### References
245 |
246 | > WebVR references
247 |
248 | * [Browser Support](https://webvr.rocks/) - Shows support by browser, headset, and OS.
249 | * [Mozilla VR](https://mixedreality.mozilla.org/) - Mozilla's official WebVR page.
250 | * [UX of VR](https://www.uxofvr.com/) - Curated list of resources to help create good UX in WebVR.
251 | * [WebXR Device API](https://immersive-web.github.io/webxr/) - The W3C draft API for WebXR.
252 | * [WebVR Spec](https://w3c.github.io/webvr/) - The official W3C WebVR spec (legacy).
253 | * [How to read WebVR Specs](https://dassur.ma/things/reading-specs/)
254 |
255 | ## Libraries
256 |
257 | > [More detailed information about the different libraries can be found in the Libraries directory.](https://github.com/sjfricke/awesome-webgl/tree/master/Libraries)
258 |
259 | ### 2D
260 | * [p2.js](https://github.com/schteppe/p2.js) - 2D rigid body physics engine written in JavaScript.
261 | * [Phaser](https://phaser.io/) - Open source HTML5 2D game framework for Canvas and WebGL, supports mobile web browsers.
262 | * [PixiJS](http://www.pixijs.com/) - powerful 2D Javascript renderer based on WebGL.
263 | * [Planck.js](https://github.com/shakiba/planck.js) - 2D physics engine for cross-platform HTML5 game development.
264 | * [Stage.js](https://github.com/shakiba/stage.js) - 2D Library for cross-platform HTML5 game development.
265 |
266 | ### Compute (GPGPU)
267 |
268 | #### Computer Vision
269 | * [GammaCV](https://gammacv.com) - WebGL accelerated Computer Vision library for browser.
270 |
271 | #### Particles
272 | * [Phenomenon](https://github.com/vaneenige/phenomenon) - Very small, low-level WebGL library that provides the essentials to deliver a high performance experience.
273 |
274 | ### Maps and Visualizations
275 | * [Cesium](https://cesiumjs.org/) - Open-source library for world-class 3D globes and maps.
276 | * [Deck.gl](http://deck.gl/) - WebGL overlay suite for React providing a set of highly performant data visualization overlays.
277 | * [Luma.gl](https://luma.gl/) - WebGL2 powered framework for GPU-powered data visualization and computation.
278 | * [xeokit](https://xeokit.io/) - Web Graphics SDK for AEC/BIM applications with 3D-tiles, real-world coordinates and double precision.
279 |
280 | ### Math
281 | * [glMatrix](http://glmatrix.net/) - Javascript matrix and vector library for high performance WebGL apps.
282 | * [Sylvester](http://sylvester.jcoglan.com/) - Sylvester is a vector, matrix and geometry library for JavaScript.
283 | * [TWGL](http://twgljs.org/) - Sole purpose is to make using the WebGL API less verbose.
284 |
285 | ### Rendering
286 | * [GLBoost](https://github.com/emadurandal/GLBoost) - Rendering library for 3D graphic geeks.
287 | * [GrimoireGL](https://grimoire.gl/) - Bridge between Web engineers and CG engineers.
288 | * [Hilo3d](https://github.com/hiloteam/Hilo3d) - WebGL rendering engine for 3D games.
289 |
290 | ### Physics
291 | * [Ammo.js](https://github.com/kripken/ammo.js/) - Direct port of the Bullet physics engine to JavaScript using Emscripten.
292 | * [Cannon.js](http://schteppe.github.io/cannon.js/) - Lightweight and simple 3D physics engine for the web.
293 |
294 | ### WebGL 2
295 | * [PicoGL.js](https://tsherif.github.io/picogl.js/) - Minimal WebGL 2-only rendering library.
296 |
297 | ### WebVR
298 | * [A-Frame](https://aframe.io/) - Web framework for building virtual reality experiences.
299 | * [Awesome-AFrame](https://github.com/aframevr/awesome-aframe)
300 | * [Hologram](https://hologram.cool/) - Desktop app that let you create and prototype WebVR in interactive way needing no previous coding knowledge.
301 | * [LÖVR](https://lovr.org/) - Simple framework for creating VR with Lua.
302 | * [React 360](https://facebook.github.io/react-360/) - Build VR websites and interactive 360 experiences with React.
303 | * [Primrose](https://github.com/capnmidnight/Primrose/) - Rapidly prototype VR applications in your browser.
304 |
305 | ### Others
306 | * [Babylon.js](https://www.babylonjs.com/) - Complete JavaScript framework for building 3D games with HTML5, WebGL and Web Audio.
307 | * [Blend4Web](https://www.blend4web.com/en/) - Tool for interactive 3D visualization on the Internet.
308 | * [ClayGL](http://claygl.xyz/) - WebGL graphic Library for building scalable Web3D applications.
309 | * [CopperLicht](https://www.ambiera.com/copperlicht/index.html) - JavaScript library and WebGL 3D engine for creating games and 3D applications.
310 | * [GLGE](http://www.glge.org/) - Javascript library intended to ease the use of WebGL.
311 | * [Lightgl.js](https://github.com/evanw/lightgl.js) - Lightweight and explict library to help prototype.
312 | * [OSG.js](https://cedricpinson.github.io/osgjs-website/) - WebGL framework based on OpenSceneGraph concepts to interact with WebGL.
313 | * [Pex-gl](http://vorg.github.io/pex/) - JavaScript libraries for computational thinking in Plask/Node.js and WebGL.
314 | * [PlayCanvas](https://playcanvas.com/) - Game engine platform to build interactive experiences.
315 | * [Pocket.gl](https://github.com/gportelli/pocket.gl) - Fully customizable webgl shader sandbox to embed in your pages.
316 | * [Regl](http://regl.party/) - Light declarative and stateless library, functional abstraction for WebGL.
317 | * [Scene.js](http://scenejs.org/) - Extensible WebGL-based engine for high-detail 3D visualisation.
318 | * [Three.js](https://threejs.org/) - Aimed to create an easy to use, lightweight, 3D library.
319 | * [Turbulenz](https://github.com/turbulenz/turbulenz_engine) - Modular 3D and 2D game framework for making HTML5 powered games for browsers, desktops and mobile devices.
320 | * [Verge3D](https://www.soft8soft.com/verge3d/) - an artist-friendly toolkit for creating 3D web experiences.
321 | * [Whitestorm.js](https://whs.io/) - Framework for developing 3D web apps with physics.
322 |
323 | ## Community
324 | * [Stack Overflow](https://stackoverflow.com/questions/tagged/webgl)
325 | * [Reddit](https://www.reddit.com/r/webgl/)
326 | * [Facebook](https://www.facebook.com/groups/webgl/about/)
327 | * [Twitter](https://twitter.com/webgl)
328 | * [Freenode IRC](http://webchat.freenode.net/?channels=webgl)
329 | * [Khronos Forum](https://community.khronos.org/c/other-standards/webgl)
330 | * [Google Group](https://groups.google.com/forum/#!forum/webgl-dev-list)
331 | * [Google Plus](https://plus.google.com/communities/114915309361980512257)
332 | * [Public Mailing List](https://www.khronos.org/webgl/public-mailing-list/)
333 | * [WebVR Slack](http://webvr-slack.herokuapp.com/)
334 | * [WebVR Public Mailing List](https://lists.w3.org/Archives/Public/public-webvr/)
335 | * Active Meetup Groups
336 | * [San Francisco, CA](https://www.meetup.com/WebGL-Developers-Meetup/)
337 | * [Mountain View, CA](https://www.meetup.com/Silicon-Valley-HTML5-WebGL-Meetup/)
338 | * [London, United Kingdom](https://www.meetup.com/WebGL-Workshop-London/)
339 | * [New York, NY](https://www.meetup.com/NYC-WebGL-Developers/)
340 |
341 | ## Related lists
342 |
343 | > Similar awesome lists
344 |
345 | * [awesome](https://github.com/sindresorhus/awesome) - Curated list of awesome lists.
346 | * [awesome-opengl](https://github.com/eug/awesome-opengl) - Curated list of awesome OpenGL libraries, debuggers and resources. Inspired by awesome-... stuff.
347 | * [awesome-vulkan](https://github.com/vinjn/awesome-vulkan) - Curated list of awesome Vulkan projects and ecosystem.
348 | * [gamedev](https://github.com/ellisonleao/magictools) - Awesome list about game development.
349 | * [glTF](https://github.com/KhronosGroup/glTF) - Runtime 3D Asset Delivery designed for the web.
350 | * [graphics-resources](https://github.com/mattdesl/graphics-resources) - List of graphic programming resources.
351 |
352 | ## Contributing
353 | Please see [CONTRIBUTING](https://github.com/sjfricke/awesome-webgl/blob/master/CONTRIBUTING.md) for details.
354 |
355 | ## Testing
356 | Travis CI testing automation thanks to [awesome_bot](https://github.com/dkhamsing/awesome_bot)!
357 |
358 | ## License
359 |
360 | [](https://creativecommons.org/publicdomain/zero/1.0/)
361 |
362 | To the extent possible under law, [Spencer Fricke](https://github.com/sjfricke) has waived all copyright and related or neighboring rights to this work.
363 |
--------------------------------------------------------------------------------
/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 sjfricke@wisc.edu. 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 |
--------------------------------------------------------------------------------
/webgl_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sjfricke/awesome-webgl/0434d30d033460994169710634d94ebd4c46814e/webgl_logo.png
--------------------------------------------------------------------------------