{"id":6708,"date":"2025-03-26T13:16:55","date_gmt":"2025-03-26T17:16:55","guid":{"rendered":"https:\/\/dkc.umw.edu\/?p=6708"},"modified":"2025-03-26T13:16:55","modified_gmt":"2025-03-26T17:16:55","slug":"04-a-new-dimension","status":"publish","type":"post","link":"https:\/\/dkc.umw.edu\/fellows\/2025\/03\/26\/04-a-new-dimension\/","title":{"rendered":"04 A New Dimension"},"content":{"rendered":"\n<p>In order to prepare for working with 3d objects (my plan for representing the planets), I wanted to familiarize myself with the tools in p5.js that enable 3d. As it turns out, they&#8217;re rather simple. You must simply declare the canvas with an extra argument (WEBGL), and then you may call commands such as orbitControl() which enables movement in 3d via the mouse.<\/p>\n\n\n\n<p>To practice the placing of objects in 3d, I played around with the code snippets provided in the documentation. Firstly, it&#8217;s just a sphere comprising rings of cubes.<\/p>\n\n\n\n<div class=\"wp-block-essential-blocks-row alignfull  root-eb-row-7n5wq\"><div class=\"eb-parent-wrapper eb-parent-eb-row-7n5wq \"><div class=\"eb-row-root-container eb-row-7n5wq\" data-id=\"eb-row-7n5wq\"><div class=\"eb-row-wrapper\"><div class=\"eb-row-inner\">\n<div class=\"wp-block-essential-blocks-column  root-eb-column-gm31t\"><div class=\"eb-parent-wrapper eb-parent-eb-column-gm31t \"><div class=\"eb-column-wrapper eb-column-gm31t\"><div class=\"eb-column-inner\">\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/dkc.umw.edu\/fellows\/wp-content\/uploads\/sites\/2\/2025\/03\/01-50_01-1024x668.png\" alt=\"A radially symmetrical pattern comprising blue boxes that describe a sphere in rings\" class=\"wp-image-6709\" \/><\/figure>\n<\/div><\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-essential-blocks-column  root-eb-column-oim7u\"><div class=\"eb-parent-wrapper eb-parent-eb-column-oim7u \"><div class=\"eb-column-wrapper eb-column-oim7u\"><div class=\"eb-column-inner\">\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/dkc.umw.edu\/fellows\/wp-content\/uploads\/sites\/2\/2025\/03\/02-50_01-1024x668.png\" alt=\"A radially symmetrical pattern comprising blue boxes that describe a sphere in rings. Shown off axis revealing the sphere\" class=\"wp-image-6710\" \/><\/figure>\n<\/div><\/div><\/div><\/div>\n<\/div><\/div><\/div><\/div><\/div>\n\n\n\n<p>I added the ability to make concentric layers, here is 1 internal layer.<\/p>\n\n\n\n<p>To ensure this looks nice I am scaling the size of the cubes, the distance between the spheres of cubes, and the line thickness of each edge of the cubes.<\/p>\n\n\n\n<div class=\"wp-block-essential-blocks-row alignfull  root-eb-row-pffmh\"><div class=\"eb-parent-wrapper eb-parent-eb-row-pffmh \"><div class=\"eb-row-root-container eb-row-pffmh\" data-id=\"eb-row-pffmh\"><div class=\"eb-row-wrapper\"><div class=\"eb-row-inner\">\n<div class=\"wp-block-essential-blocks-column  root-eb-column-ht398\"><div class=\"eb-parent-wrapper eb-parent-eb-column-ht398 \"><div class=\"eb-column-wrapper eb-column-ht398\"><div class=\"eb-column-inner\">\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/dkc.umw.edu\/fellows\/wp-content\/uploads\/sites\/2\/2025\/03\/03-50_02-1024x668.png\" alt=\"A radially symmetrical pattern comprising blue boxes that describe a sphere in rings.\" class=\"wp-image-6711\" \/><\/figure>\n<\/div><\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-essential-blocks-column  root-eb-column-y4l7r\"><div class=\"eb-parent-wrapper eb-parent-eb-column-y4l7r \"><div class=\"eb-column-wrapper eb-column-y4l7r\"><div class=\"eb-column-inner\">\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/dkc.umw.edu\/fellows\/wp-content\/uploads\/sites\/2\/2025\/03\/04-50_03-1024x668.png\" alt=\"A radially symmetrical pattern comprising blue boxes that describe a sphere in rings. Shown off axis revealing an internal sphere of smaller cubes.\" class=\"wp-image-6712\" \/><\/figure>\n<\/div><\/div><\/div><\/div>\n<\/div><\/div><\/div><\/div><\/div>\n\n\n\n<p>And at 9 internal layers, 10 concentric spheres in total, some interesting shapes and patterns emerge.<\/p>\n\n\n\n<div class=\"wp-block-essential-blocks-row alignfull  root-eb-row-0z61v\"><div class=\"eb-parent-wrapper eb-parent-eb-row-0z61v \"><div class=\"eb-row-root-container eb-row-0z61v\" data-id=\"eb-row-0z61v\"><div class=\"eb-row-wrapper\"><div class=\"eb-row-inner\">\n<div class=\"wp-block-essential-blocks-column  root-eb-column-81xuc\"><div class=\"eb-parent-wrapper eb-parent-eb-column-81xuc \"><div class=\"eb-column-wrapper eb-column-81xuc\"><div class=\"eb-column-inner\">\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/dkc.umw.edu\/fellows\/wp-content\/uploads\/sites\/2\/2025\/03\/05-50_10-1024x668.png\" alt=\"A radially symmetrical pattern comprising blue boxes that describe a sphere in rings. With more cubes from the internal spheres the shape is bolder and more vaguely floral.\" class=\"wp-image-6713\" \/><\/figure>\n<\/div><\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-essential-blocks-column  root-eb-column-cr6cy\"><div class=\"eb-parent-wrapper eb-parent-eb-column-cr6cy \"><div class=\"eb-column-wrapper eb-column-cr6cy\"><div class=\"eb-column-inner\">\n<figure class=\"wp-block-image size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/dkc.umw.edu\/fellows\/wp-content\/uploads\/sites\/2\/2025\/03\/06-50_10-1024x668.png\" alt=\"A radially symmetrical pattern comprising blue boxes that describe a sphere in rings. Shown off axis, revealing the structure of the sphere and the 9 concentric spheres comprising smaller cubes.\" class=\"wp-image-6714\" style=\"width:526px;height:auto\" \/><\/figure>\n<\/div><\/div><\/div><\/div>\n<\/div><\/div><\/div><\/div><\/div>\n\n\n\n<p>Below is the code that was used to generate these images. I achieve different results by tweaking the values I have passed into different functions, chiefly the scale of the main sphere and number of sub-spheres passed into drawCubeSpheres(50, 10); 50 being the size used for all of these images, and 10 being the amount of spheres in these final two images<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function setup() {\n\n    createCanvas(1150, 750, WEBGL);\n\n    angleMode(DEGREES);\n    noFill();\n    stroke(32, 8, 64, 255);\n    describe(\n        \"Users can click on the screen and drag to adjust their perspective in 3D space. The space   contains a sphere of dark purple cubes on a light pink background.\");\n}\n\nfunction draw() {\n\n    background(250, 180, 200);\n\n    \/\/ Call every frame to adjust camera based on mouse\/touch\n\n    orbitControl();\n\n    drawCubeSphere(50,10);\n\n}\n\nfunction drawCubeSphere(scale, numSpheres) {\n    scale = ceil(scale);\n    \/\/ number of spheres of cubes\n    for (let i = 0; i &lt; numSpheres; i++) {\n        \/\/ Rotate rings in a half circle to create a sphere of cubes\n        for (let zAngle = 0; zAngle &lt; 180; zAngle += 30) {\n            \/\/ Rotate cubes in a full circle to create a ring of cubes\n            for (let xAngle = 0; xAngle &lt; 360; xAngle += 30) {\n                push();\n                \/\/ Rotate from center of sphere\n                rotateZ(zAngle);\n                rotateX(xAngle);\n                \/\/ Then translate down (eg.)50 * 8 = 400 units\n                translate(0, (scale * 8) \/ (i + 1), 0);\n\n  \n                strokeWeight(scale \/ 10 \/ (i + 1)); \/\/ scales down\n                \/\/ strokeWeight((scale \/ 10) * (i + 1)); \/\/ scales up\n                \/\/ strokeWeight(5); \/\/ constant\n                box(scale \/ (i + 1)); \/\/ scales down\n                \/\/ box(scale * (i + 1)); \/\/ scales up\n                \/\/ box(scale); \/\/ constant\n                pop();\n            }\n        }\n    }\n}<\/code><\/pre>\n\n\n\n<p>What I&#8217;m working on next in this area is tracing 3d objects around a circular\/elliptical field. This project is involving more math revision than I anticipated but i do welcome the process of refreshing my geometry.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Music<\/h2>\n\n\n\n<p>I must admit little progress has been made the last couple of weeks due to my failing to schedule time experimenting with music, I do however have a demonstration of the music in its starting state. I am working in Bitwig Studio as opposed to Ableton Live because I&#8217;ve found it much more stable and crashes far less often. The video shows one track per planet\/celestial object and in this current state each orbiting body is introduced slowly to get the listener accustomed to the rhythm before further complicating it with more and more cycles of notes.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"The Planets 00\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/hYjh6HEtrK4?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>This week I will be playing more with the actual sound or timbre of each planet as well as trying more structures that the piece might work in.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In order to prepare for working with 3d objects (my plan for representing the planets), I wanted to familiarize myself with the tools in p5.js that enable 3d. As it turns out, they&#8217;re rather simple. You must simply declare the canvas with an extra argument (WEBGL), and then you may call commands such as orbitControl() [&hellip;]<\/p>\n","protected":false},"author":14,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-6708","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/dkc.umw.edu\/fellows\/wp-json\/wp\/v2\/posts\/6708","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dkc.umw.edu\/fellows\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dkc.umw.edu\/fellows\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dkc.umw.edu\/fellows\/wp-json\/wp\/v2\/users\/14"}],"replies":[{"embeddable":true,"href":"https:\/\/dkc.umw.edu\/fellows\/wp-json\/wp\/v2\/comments?post=6708"}],"version-history":[{"count":0,"href":"https:\/\/dkc.umw.edu\/fellows\/wp-json\/wp\/v2\/posts\/6708\/revisions"}],"wp:attachment":[{"href":"https:\/\/dkc.umw.edu\/fellows\/wp-json\/wp\/v2\/media?parent=6708"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dkc.umw.edu\/fellows\/wp-json\/wp\/v2\/categories?post=6708"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dkc.umw.edu\/fellows\/wp-json\/wp\/v2\/tags?post=6708"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}