{"action":"created","issue":{"url":"https://api.github.com/repos/jdan/isomer/issues/72","labels_url":"https://api.github.com/repos/jdan/isomer/issues/72/labels{/name}","comments_url":"https://api.github.com/repos/jdan/isomer/issues/72/comments","events_url":"https://api.github.com/repos/jdan/isomer/issues/72/events","html_url":"https://github.com/jdan/isomer/issues/72","id":67680737,"number":72,"title":"Let's chat about WebGL","user":{"login":"jdan","id":287268,"avatar_url":"https://avatars.githubusercontent.com/u/287268?v=3","gravatar_id":"","url":"https://api.github.com/users/jdan","html_url":"https://github.com/jdan","followers_url":"https://api.github.com/users/jdan/followers","following_url":"https://api.github.com/users/jdan/following{/other_user}","gists_url":"https://api.github.com/users/jdan/gists{/gist_id}","starred_url":"https://api.github.com/users/jdan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jdan/subscriptions","organizations_url":"https://api.github.com/users/jdan/orgs","repos_url":"https://api.github.com/users/jdan/repos","events_url":"https://api.github.com/users/jdan/events{/privacy}","received_events_url":"https://api.github.com/users/jdan/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/jdan/isomer/labels/discussion","name":"discussion","color":"bfe5bf"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2015-04-10T20:53:30Z","updated_at":"2015-04-11T01:17:30Z","closed_at":null,"body":"I'll make an issue about this - I'd like to hear everyone's thoughts. Don't hold back!\r\n\r\nI'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\r\n\r\n* Depth ordering\r\n* Lighting, shadows, etc\r\n* Textures\r\n* Performance\r\n* Community support\r\n\r\nSome downsides?\r\n\r\n* Code size. `isomer.min.js` is currently 9KB. With threejs that shoots up to almost a 1MB.\r\n* As such, this takes time to load!\r\n* What exactly *is* Isomer if we just offload everything to a WebGL library? Are we just a simple wrapper? Why Isometric at all?\r\n\r\nThere'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.\r\n\r\n### So what do I actually want to do with Isomer?\r\n\r\nI 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?\r\n\r\nIf 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?\r\n\r\nSo - 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!\r\n\r\nIn an ideal world? We would be using WebGL without compromising our small code size and speed. Does something like [stack.gl](http://stack.gl) make that possible? I remain skeptical."},"comment":{"url":"https://api.github.com/repos/jdan/isomer/issues/comments/91735700","html_url":"https://github.com/jdan/isomer/issues/72#issuecomment-91735700","issue_url":"https://api.github.com/repos/jdan/isomer/issues/72","id":91735700,"user":{"login":"owenversteeg","id":1836017,"avatar_url":"https://avatars.githubusercontent.com/u/1836017?v=3","gravatar_id":"","url":"https://api.github.com/users/owenversteeg","html_url":"https://github.com/owenversteeg","followers_url":"https://api.github.com/users/owenversteeg/followers","following_url":"https://api.github.com/users/owenversteeg/following{/other_user}","gists_url":"https://api.github.com/users/owenversteeg/gists{/gist_id}","starred_url":"https://api.github.com/users/owenversteeg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/owenversteeg/subscriptions","organizations_url":"https://api.github.com/users/owenversteeg/orgs","repos_url":"https://api.github.com/users/owenversteeg/repos","events_url":"https://api.github.com/users/owenversteeg/events{/privacy}","received_events_url":"https://api.github.com/users/owenversteeg/received_events","type":"User","site_admin":false},"created_at":"2015-04-11T01:17:30Z","updated_at":"2015-04-11T01:17:30Z","body":"I guess I have a unique perspective here, since I'm a huge fan of \"as small as possible\". My CSS framework, Min, is only 995 bytes (https://github.com/owenversteeg/min)\r\n\r\nAs such, I love Isomer's current path (of being 9kb) - it fits exactly with my development style.\r\n\r\nAt the same time, I agree with you that using WebGL would be great since it would allow some features I've been really interested in. I'm torn, really. \r\n\r\nFor now I'm leaning towards staying with the current path. 1MB of code seems kind of ridiculous to me. Another option might be a WebGL fork - since it seems the codebase would shrink drastically going to Three.js, this may not be difficult to maintain as a separate project from Isomer.\r\n\r\nSide note: I'd also be interested to see how switching to WebGL would change the browser support."}}