I'll make an issue about this - I'd like to hear everyone's thoughts. Don't hold back!
I've spent a few hours on a new threejs branch for Isomer, for a number of reasons. Mainly, WebGL does a few things very well
- Depth ordering
- Lighting, shadows, etc
- Textures
- Performance
- Community support
Some downsides?
- Code size.
isomer.min.js is currently 9KB. With threejs that shoots up to almost a 1MB.
- As such, this takes time to load!
- What exactly is Isomer if we just offload everything to a WebGL library? Are we just a simple wrapper? Why Isometric at all?
There's a certain novelty in having Isomer so small, and translating lots of complicated 3D things into simple 2D canvas operations. I think those are some of the more attractive bits of this library, and by attempting to bring in WebGL I'm going against that.
So what do I actually want to do with Isomer?
I don't know! The original intent was to make cute little pictures, and I think that still holds true. But does the library need to be small to do that?
If we attempt to make Isomer this super powerful thing with an awesome foundation, are we encouraging a different use-case than what we originally intended? Is that okay?
So - I'm perplexed. I want Isomer to be small, but I want it to be correct. That is, I want Isomer to have these great features that come for free with a WebGL backing, but I don't want all the other stuff that I don't need. This isn't an attack at Three.js specifically, but WebGL in general!
In an ideal world? We would be using WebGL without compromising our small code size and speed. Does something like stack.gl make that possible? I remain skeptical.
I'll make an issue about this - I'd like to hear everyone's thoughts. Don't hold back!
I've spent a few hours on a new
threejsbranch for Isomer, for a number of reasons. Mainly, WebGL does a few things very wellSome downsides?
isomer.min.jsis currently 9KB. With threejs that shoots up to almost a 1MB.There's a certain novelty in having Isomer so small, and translating lots of complicated 3D things into simple 2D canvas operations. I think those are some of the more attractive bits of this library, and by attempting to bring in WebGL I'm going against that.
So what do I actually want to do with Isomer?
I don't know! The original intent was to make cute little pictures, and I think that still holds true. But does the library need to be small to do that?
If we attempt to make Isomer this super powerful thing with an awesome foundation, are we encouraging a different use-case than what we originally intended? Is that okay?
So - I'm perplexed. I want Isomer to be small, but I want it to be correct. That is, I want Isomer to have these great features that come for free with a WebGL backing, but I don't want all the other stuff that I don't need. This isn't an attack at Three.js specifically, but WebGL in general!
In an ideal world? We would be using WebGL without compromising our small code size and speed. Does something like stack.gl make that possible? I remain skeptical.