<p dir="auto">I opened this thread at StackOverflow and had my worst suspicions enforced that this is not idea for my personal private vision (aka use case) for THREE in general.<br>
<a href="http://stackoverflow.com/questions/35075432/how-to-change-a-boxs-dimensions-size-after-creation" rel="nofollow">http://stackoverflow.com/questions/35075432/how-to-change-a-boxs-dimensions-size-after-creation</a></p>
<p dir="auto">I think it would be nice that if in any new THREE<a href="">type</a> declaration you could simple pass it an Object aka JSON with standard format for values and have it create and/or assign them that way is idea for a more transparent implementation (I aspire to achieve).</p>
<p dir="auto">So for BoxGeometry passing an object to the constructor like {dim:{width:1, height:1, depth:1}}  (and castShadow etc. would work as well as passing the 3 arguments (+ any others, a benefit). I think it actually exists in "parameters:" and not dim.<br>
This reminds me of what might be another change request where object merging got an error when setting position (in that case doing it per key works [x, y, z] but I still have to check every key for "position" and handle it differently) of a light with this way of constructing the object.</p>
<p dir="auto">I think they should all be callable with nothing THREE<a href="">type</a> and just have defaults. For box it would be 1, 1, 1 and I guess you could scale to size and have that become potentially animated too.<br>
So the question is would the scaling effect children (but I guess that's suppose to go back to StackOverflow where there's a special way to turn that off or something I am recalling), except I'm asking about a better solution for constructors and wondering what superior alternative I'm missing otherwise.</p>
<p dir="auto">Anyway I'm thinking one bit of code can generate all object types from an  like so.</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="let item  = {type:&quot;BoxGemoetry&quot;, size:{w:2, h:1, d:5}};
let thing = new THREE[item.type](item);"><pre class="notranslate"><code class="notranslate">let item  = {type:"BoxGemoetry", size:{w:2, h:1, d:5}};
let thing = new THREE[item.type](item);
</code></pre></div>
<p dir="auto">and have it skip things it doesn't know like type, maybe a second array of skipKeys, which is self explanatory.</p>
<p dir="auto">Also I feel ideally you should be able to adjust them later, call it reuse. One case might be to pool created objects and then be able to re-purpose and reuse them. Sounds like that's impossible in cases with Geometry without blotting code but would be a nice idea. Geometry like a box should be able to change it's dimensions, no? I'd argue animate, but I'm sensing the confines of GL say otherwise.</p>
<p dir="auto">I was trying to instance a geometry, but i find it too hard to manipulate. The scenario is this. I have a geometry &amp; shader of some over-used thing in my game. But having to manage a lot of instances separately is really difficult when every attribute of every instance is somewhere on an array, and it's even more difficult when you want to destroy some instances and create new ones still drawing the ones you need. I came to the conclusion that is better to add some abstraction layer to this cases, in which i'm interested of program it.</p>
<p dir="auto">I made some idea of the API that i think would be good, to make more developer-friendly instances, that manages by itself all the memory exchange to the GPU. <a href="https://gist.github.com/BrianCraig/9583e688206089f96bbdb5d6735cf0cf">Here</a></p>
<p dir="auto">:)</p>