All Projects → PixelsCommander → Html Gl

PixelsCommander / Html Gl

Get as many FPS as you need and amazing effects by rendering HTML/CSS in WebGL

Programming Languages

javascript
184084 projects - #8 most used programming language
HTML
75241 projects
CSS
56736 projects

Projects that are alternatives of or similar to Html Gl

Gpu.js
GPU Accelerated JavaScript
Stars: ✭ 13,427 (+295.96%)
Mutual labels:  webgl, glsl
Gl React
gl-react – React library to write and compose WebGL shaders
Stars: ✭ 2,536 (-25.21%)
Mutual labels:  webgl, glsl
React Regl
React Fiber Reconciler Renderer for Regl WebGL
Stars: ✭ 171 (-94.96%)
Mutual labels:  webgl, glsl
Fsynth
Web-based and pixels-based collaborative synthesizer
Stars: ✭ 146 (-95.69%)
Mutual labels:  webgl, glsl
Gl Water2d
2D liquid simulation in WebGL
Stars: ✭ 260 (-92.33%)
Mutual labels:  webgl, glsl
Twigl
twigl.app is an online editor for One tweet shader, with gif generator and sound shader, and broadcast live coding.
Stars: ✭ 145 (-95.72%)
Mutual labels:  webgl, glsl
Magicshader
🔮 Tiny helper for three.js to debug and write shaders
Stars: ✭ 205 (-93.95%)
Mutual labels:  webgl, glsl
Glsleditor
Simple WebGL Fragment Shader Editor
Stars: ✭ 1,345 (-60.34%)
Mutual labels:  webgl, glsl
Blotter
A JavaScript API for drawing unconventional text effects on the web.
Stars: ✭ 2,833 (-16.46%)
Mutual labels:  webgl, glsl
hypVR-Ray
Hyperbolic VR using Raymarching
Stars: ✭ 81 (-97.61%)
Mutual labels:  webgl, glsl
Sketch
Explorations on cross-hatching, engraving, and similar non-photorealistic rendering.
Stars: ✭ 136 (-95.99%)
Mutual labels:  webgl, glsl
Webclgl
GPGPU Javascript library 🐸
Stars: ✭ 313 (-90.77%)
Mutual labels:  webgl, glsl
Crossshader
⚔️ A tool for cross compiling shaders. Convert between GLSL, HLSL, Metal Shader Language, or older versions of GLSL.
Stars: ✭ 113 (-96.67%)
Mutual labels:  webgl, glsl
Glsl Godrays
This module implements a volumetric light scattering effect(godrays)
Stars: ✭ 155 (-95.43%)
Mutual labels:  webgl, glsl
Three.meshline
Mesh replacement for THREE.Line
Stars: ✭ 1,644 (-51.52%)
Mutual labels:  webgl, glsl
Vim Glsl
Vim runtime files for OpenGL Shading Language
Stars: ✭ 184 (-94.57%)
Mutual labels:  webgl, glsl
Medium
Progressive WebGL toolkit for art.
Stars: ✭ 90 (-97.35%)
Mutual labels:  webgl, glsl
Sky Shader
☀️ WebGL sky and sun shader editor
Stars: ✭ 90 (-97.35%)
Mutual labels:  webgl, glsl
Pmfx Shader
Cross platform shader system for HLSL, GLSL, Metal and SPIR-V.
Stars: ✭ 245 (-92.77%)
Mutual labels:  webgl, glsl
Webgl Fundamentals
WebGL lessons that start with the basics
Stars: ✭ 3,315 (-2.24%)
Mutual labels:  webgl, glsl

HTML GL

60 FPS and amazing effects by rendering HTML/CSS in WebGL, framework agnostic

Gitter chat

HTML GL solves "the slow DOM problem" by creating WebGL representations of DOM elements and hiding actual DOM after. This speeds up HTML/CSS animations and transformations by using 3D hardware acceleration and allows to apply OpenGL effects as modern 3D games have.

Using HTML GL you still work with HTML/CSS as you are common to, but DOM elements are just facades to their WebGL representations. These GPU accelerated textures are very effective from resources consuming perspective and are very cheap to transform or animate.

Install

npm:

npm install --save html-gl

Bower:

bower install --save htmlgl

Usage

As Web Component

<html-gl>
    This element`s content is rendered in <h1>WebGL</h1>
    <span style="color: green;">was it easy?</span>
    Feel free to use CSS, images and all you are common to in HTML/CSS world.
</html-gl>

As jQuery plugin

$('.some div').htmlgl();

No DOM + WebGL rendering = highest FPS possible for Web platform

HTML GL flow diagram

Demos

  • Filters WebGL is not only about performance. It breaks any HTML/CSS limits in terms of animations and interactivity
  • Mobile effects use attribute effects on <html-gl> element to specify effects you use, this one is nice for mobile
  • Basic HTML GL demo shows how to use HTML GL and animate GL Elements. It also demonstrate that HTML GL handle content change events and repaints element`s WebGL representation
  • Basic DOM this is the same project as previous. The only difference is that htmlgl.js is not included
  • Advanced content HTML GL slider with nested content rendered via WebGL and animated, ability to drag with mouse horizontaly, click event listeners on boxes
  • Advanced content DOM

How to use?

Include HTMLGL.js into project. Use tag name <html-gl> or jQuery plugin $(myElement).htmlgl() for elements you are going to animate. These elements will be rendered in WebGL and their CSS Transform properties will be mapped to WebGL representation transformations. So DOM node itself will not be animated or displayed in order to avoid resources consuming. HTML GL is framework agnostic and is easy to inject into existing project which needs performance tweaking.

Rasterization API

In order to improve technology we are trying to promote standardized native Rasterization API for JavaScript. Help us to be better and to add this cool feature to browsers by spreading the article and proposal draft.

Fast way to animate

The most performant way to animate HTML-GL tags is to operate on tag's styleGL.transform in the same way you operate on style.transform. E.g. style.transform = 'translateX(100px) translateY(50px)'. Velocity.js copy from HTML-GL repository (https://github.com/PixelsCommander/HTML-GL/blob/master/demo/js/vendor/velocity.js) have this optimization built-in. Feel free to use it in the way described in official Velocity.js documentation.

Animating HTML-GL tag children

Since it is very efficient to make transformations (move, rotate, scale, change opacity) on HTML-GL tags it becomes very slow to animate it's children until they are HTML-GL tags too. This happens because of necessity to rasterize and send HTML-GL tag texture to GPU.

Running demos from repository

Please run bower install before running demos

License

MIT: http://mit-license.org/

Copyright 2015 Denis Radin aka PixelsCommander

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].