Live data from Hacker News

Show HN: A CSS 3D Engine (no WebGL)

github.com

11–20 of 29 posts

Re: Show HN: A CSS 3D Engine (no WebGL)

#11

Always thought it would be cool to make an RTS or simple city builder game in the browser. Would you recommend this for hacking around or not?

I think the answer is no, as this is a creative repurposing of css3d as a basis for a general 3d engine. That lets you put web content everywhere, even on the triangles of your teapot. Cool, but extravagant

Whereas THREE.js or webgl is purpose-built for realtime animated 3d scenes.

Re: Show HN: A CSS 3D Engine (no WebGL)

#12
post #6

Earlier quoted context omitted.

Hi there! This is not trying to be a three.js replacement, scenes with huge polygon counts naturally should render in canvas. For me, the interesting case is smaller low-poly or voxel scenes where loading a full 3D stack may be overkill, and where keeping the scene in DOM/CSS gives you easier integration with normal layout, styling, events, etc. Once you have the HTML, you don't even need to load the library to rende…

ha, so you could run this on the server and send down a page with no javascript at all? (with, i assume, a static camera only.) that's fun. i mean, you could also just render the model to an image at that point, but still, this is neat.

Yes, you can render on server and if you include CSS transitions/animations, you get an animated 3d render without the need for JS !

We haven't built it yet, but its on the roadmap

Re: Show HN: A CSS 3D Engine (no WebGL)

#13
post #6

Earlier quoted context omitted.

Hi there! This is not trying to be a three.js replacement, scenes with huge polygon counts naturally should render in canvas. For me, the interesting case is smaller low-poly or voxel scenes where loading a full 3D stack may be overkill, and where keeping the scene in DOM/CSS gives you easier integration with normal layout, styling, events, etc. Once you have the HTML, you don't even need to load the library to rende…

ha, so you could run this on the server and send down a page with no javascript at all? (with, i assume, a static camera only.) that's fun. i mean, you could also just render the model to an image at that point, but still, this is neat.

You can have a dynamic camera with 3D CSS only and no JS. The trick is move the scene instead of the "camera". CSS Doom uses this technique (although unlike the project I'm working on, it relies heavily on JS for the interaction logic).

Re: Show HN: A CSS 3D Engine (no WebGL)

#14

Earlier quoted context omitted.

ha, so you could run this on the server and send down a page with no javascript at all? (with, i assume, a static camera only.) that's fun. i mean, you could also just render the model to an image at that point, but still, this is neat.

Yes, you can render on server and if you include CSS transitions/animations, you get an animated 3d render without the need for JS ! We haven't built it yet, but its on the roadmap

I'm all for experimentation but getting rid of JS in this case almost certainly results in worse performance. You're trading a bit of load time for significantly slower runtime/rendering.

Re: Show HN: A CSS 3D Engine (no WebGL)

#17

Earlier quoted context omitted.

ha, so you could run this on the server and send down a page with no javascript at all? (with, i assume, a static camera only.) that's fun. i mean, you could also just render the model to an image at that point, but still, this is neat.

You can have a dynamic camera with 3D CSS only and no JS. The trick is move the scene instead of the "camera". CSS Doom uses this technique (although unlike the project I'm working on, it relies heavily on JS for the interaction logic).

Then there's "minecraft in CSS" which uses invisible form elements for camera rotation and works with no JS at all.

https://benjaminaster.com/css-minecraft/

It's been on HN before ( https://news.ycombinator.com/item?id=44100148 )

Re: Show HN: A CSS 3D Engine (no WebGL)

#18
post #14

Earlier quoted context omitted.

Yes, you can render on server and if you include CSS transitions/animations, you get an animated 3d render without the need for JS ! We haven't built it yet, but its on the roadmap

I'm all for experimentation but getting rid of JS in this case almost certainly results in worse performance. You're trading a bit of load time for significantly slower runtime/rendering.

Huh.... why would a CSS animation of a transform be slower than JS? This is strictly for the "CSS transform" case ofc - obviously pure webgl would be way faster.

I'm having a hard time seeing it. My experiments with CSS animation have always performed much better in CSS than JS (again, excluding it being pure webgl/canvas JS).

And ofc there's the nice bonus that it works if I haven't chosen to trust and whitelist their website for JS yet.

Re: Show HN: A CSS 3D Engine (no WebGL)

#20
post #14

Earlier quoted context omitted.

I'm all for experimentation but getting rid of JS in this case almost certainly results in worse performance. You're trading a bit of load time for significantly slower runtime/rendering.

Huh.... why would a CSS animation of a transform be slower than JS? This is strictly for the "CSS transform" case ofc - obviously pure webgl would be way faster. I'm having a hard time seeing it. My experiments with CSS animation have always performed much better in CSS than JS (again, excluding it being pure webgl/canvas JS). And ofc there's the nice bonus that it works if I haven't chosen to trust and whitelist the…

I meant slower vs. WebGL rendering, which requires JS. Each triangle is rendered as a DOM node. There can be thousands of triangles in a single model.

The gallery has been updated with more models. Compare the same model in PolyCSS vs. Three.js:

https://polycss.com/gallery/?model=205023689 (13 fps)

https://threejs.org/examples/#webgl_animation_skinning_morph (60 fps)

Post reply on HN