<div><div dir="auto">Another option would be to avoid 3D all together and do it in 2D. Think of the cube as a cardboard box, cut some sides and lay it flat in the plane. Like a sort of symbolic representation of the cube, could be interesting.</div></div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, 31 Aug 2020 at 12:11 AM, Phil B via Cuis-dev <<a href="mailto:cuis-dev@lists.cuis.st">cuis-dev@lists.cuis.st</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)"><div dir="ltr">Juan is pointing you in the right direction.  It mainly depends on your objectives:  Ray tracing will result in more lifelike lighting and shadows, at the expense of performance (Luciano's implementation will only run on a single CPU core).  OpenGL will give you performance (taking advantage of your GPU), at the expense of realism.  Let's aside the latest gen nVidia cards with hardware accelerated ray tracing: OpenGL doesn't support it,  it would limit you to a tiny fraction of the GPU universe currently and nothing I'm aware of in Cuis or even Squeak/Pharo-land will help you with it.<div><br></div><div>For this application, I would think OpenGL is the way to go.  Both from the standpoint of the simplicity of it (your scene consists of 26 colored cubes, for a standard Rubik's Cube, which can easily be realized with vertex shading) and the fact that at some point you'd probably want to animate it to 'show' the solution.  Since your shading needs are basic, you can also stick with the fixed-function pipeline (i.e. OpenGL <=3) to keep your life simple which is what most OpenGL tutorials out there cover.</div><div><br></div><div>If I were doing something like this, I'd probably do it via a web app using WebGL... it would be more than capable of handling a scene of this complexity.  This may be more than you want to bite off right now, just making you aware of the possibility.</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Aug 29, 2020 at 9:22 PM Juan Vuletich via Cuis-dev <<a href="mailto:cuis-dev@lists.cuis.st" target="_blank">cuis-dev@lists.cuis.st</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)">On 8/29/2020 3:35 AM, Casey Ransberger via Cuis-dev wrote:<br><br><br>> Hey Juan!<br><br><br>><br><br><br>> You were doing some stuff experimentally with the video hardware everyone has in their pants now.<br><br><br><br><br><br>Well, I guess you refer to OpenCL. But OpenCL (a C like language for <br><br><br>doing numerical computation) has no relation to OpenGL (the most common <br><br><br>API for 3D graphics).<br><br><br><br><br><br>> I *really* want to create a sort of holiday for people who love twisty puzzles, starting with the classic Rubik’s Cube. Like, I have a few algorithms that I’m focused on memorizing, but other people should be able to chase their own algorithms.<br><br><br>><br><br><br>> I’d love to help create a dictionary of speedcubing algorithms and all you have to do if you want access to a community-built set of hard-earned algorithms, is just read and participate.<br><br><br>><br><br><br>> I want some 3D graphics in Cuis, but we don’t need much: just enough to make use the platform that every speedcuber resorts to when everything else has gone to hell in a hand basket. Just a way to think about what went wrong while you were landing the world record.<br><br><br>><br><br><br>> I know that your focus is vector graphics, but there are some 3d things I think we need to at least think about.<br><br><br>><br><br><br>> I’m going to be the fiercest human who ever defended cubing as a legit sport.<br><br><br>><br><br><br>> Here comes my name!<br><br><br>><br><br><br>> —Casey<br><br><br>><br><br><br><br><br><br>I think 3D is very interesting and I'd love to see more activity on it. <br><br><br>Your idea sonds neat! But I can't really help you. I never did 3D, and I <br><br><br>can't really start studying a new field right now.<br><br><br><br><br><br>I suggest taking a good look at <a href="https://github.com/pbella/Cuis-OpenGL" rel="noreferrer" target="_blank">https://github.com/pbella/Cuis-OpenGL</a> <br><br><br>and <a href="https://github.com/len/RayTracer" rel="noreferrer" target="_blank">https://github.com/len/RayTracer</a> . Phil, Luciano, any comment on <br><br><br>Casey's project?<br><br><br><br><br><br>Cheers,<br><br><br><br><br><br>-- <br><br><br>Juan Vuletich<br><br><br><a href="http://www.cuis-smalltalk.org" rel="noreferrer" target="_blank">www.cuis-smalltalk.org</a><br><br><br><a href="https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev" rel="noreferrer" target="_blank">https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev</a><br><br><br><a href="https://github.com/jvuletich" rel="noreferrer" target="_blank">https://github.com/jvuletich</a><br><br><br><a href="https://www.linkedin.com/in/juan-vuletich-75611b3" rel="noreferrer" target="_blank">https://www.linkedin.com/in/juan-vuletich-75611b3</a><br><br><br>@JuanVuletich<br><br><br><br><br><br>-- <br><br><br>Cuis-dev mailing list<br><br><br><a href="mailto:Cuis-dev@lists.cuis.st" target="_blank">Cuis-dev@lists.cuis.st</a><br><br><br><a href="https://lists.cuis.st/mailman/listinfo/cuis-dev" rel="noreferrer" target="_blank">https://lists.cuis.st/mailman/listinfo/cuis-dev</a><br><br><br></blockquote></div><br><br>-- <br><br>Cuis-dev mailing list<br><br><a href="mailto:Cuis-dev@lists.cuis.st" target="_blank">Cuis-dev@lists.cuis.st</a><br><br><a href="https://lists.cuis.st/mailman/listinfo/cuis-dev" rel="noreferrer" target="_blank">https://lists.cuis.st/mailman/listinfo/cuis-dev</a><br><br></blockquote></div></div>