<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>swiftp.cc</title><description>swiftp&apos;s blog :3</description><link>https://swiftp.cc/</link><item><title>Summer 2025 Life Update</title><link>https://swiftp.cc/blog/summer-2025-update/</link><guid isPermaLink="true">https://swiftp.cc/blog/summer-2025-update/</guid><description>What I&apos;ve been up to so far this summer</description><pubDate>Thu, 14 Aug 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import Algonquin from &quot;./assets/summer2025/algonquin.mp4?url&quot;;
import AmigaBalls from &quot;./assets/summer2025/amigaballs_bass-node.mp4?url&quot;;
import Worm from &quot;./assets/summer2025/worm.mp4?url&quot;;&lt;/p&gt;
&lt;h1&gt;I&apos;ve been doing a lot of random stuff this summer&lt;/h1&gt;
&lt;p&gt;I recently quit my job and am finally in a position where I can take things a lot more slowly now. I&apos;ve been telling friends in response to the &quot;what have you been up to?&quot; question, &lt;em&gt;&quot;just goin wherever the wind blows.&quot;&lt;/em&gt;  I&apos;m super grateful and privileged to be in this position but I also recognize that I worked my ass off to be here as well, so I&apos;m definitely enjoying it while it lasts!&lt;/p&gt;
&lt;p&gt;Here are some of the things I&apos;m proud of that I&apos;ve more or less completed this summer, in more or less chronological order.&lt;/p&gt;
&lt;h2&gt;Worm?!&lt;/h2&gt;
&lt;p&gt;I am super gracious to have been invited to participate in the local art+technology institution InterAccess&apos; &lt;a href=&quot;https://www.interaccess.org/exhibitions/flashdrive-digital-arts-fundraiser-exhibition&quot;&gt;flashDRIVE: Digital Art Fundraiser Exhibition&lt;/a&gt; this past May. All 40 or so artists were invited to exhbit some screen based work to be placed on a wall together salon style.&lt;/p&gt;
&lt;p&gt;For my piece I leaned on my obsession with the &lt;a href=&quot;https://openworm.org&quot;&gt;OpenWorm project&lt;/a&gt; and created probably my first of many art pieces featuring research from it. Here&apos;s the artist statement for the project:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;This digital piece features a living simulation of C. elegans, the microscopic roundworm, displayed with visual aesthetics reminiscent of vintage digital pets like Tamagotchi. The worm’s movements are driven by seven accurately modeled neurons developed through the OpenWorm project, creating authentic behavioral patterns as the creature navigates its environment. The deliberate juxtaposition of cutting-edge neural simulation with nostalgic visual design invites viewers to contemplate the nature of artificial intelligence, consciousness, and our relationships with digital and biological pets. As the primitive yet complex organism responds to its environment in real-time, it challenges our understanding of the boundaries between simulated and genuine intelligence, while simultaneously exploring our tendency to form emotional connections with entities we nurture, whether digital or living.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;You can learn more &lt;a href=&quot;https://github.com/lpalombo/wormworx-wasm/tree/main&quot;&gt;at my open source repo with the base source code to get a worm running in the browser&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;video src={Worm} muted controls&amp;gt;&amp;lt;/video&amp;gt;
&lt;img src=&quot;./assets/summer2025/IMG_0583.PNG&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Sk88r&apos;ing&lt;/h2&gt;
&lt;p&gt;I&apos;ve been skateboarding for 20 odd years now, not that I&apos;m good or anything. This year I&apos;ve been trying my best to learn &lt;a href=&quot;https://www.youtube.com/watch?v=mZZyRqp7E6A&quot;&gt;slappy grinds&lt;/a&gt;. I guess I&apos;m lucky cause I caught some weirdo grinding down and clear coating a curb near my apartment.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;./assets/summer2025/camphoto_126398554.jpg&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;./assets/summer2025/IMG_0764.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I also copied a &lt;a href=&quot;https://reinvigorate.co&quot;&gt;unique balance board&lt;/a&gt; I saw online. I would have bought one but shipping was killer and it seemed like a fun design challenge to try to design one myself. I&apos;m a little hesitant to release the files because I wouldn&apos;t want to impact this dude&apos;s business but you never know! In the meantime if you&apos;re interested and have a 3D printer, &lt;a href=&quot;mailto:lucp.xyz@gmail.com&quot;&gt;let me know&lt;/a&gt; and I&apos;ll send the files your way.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;./assets/summer2025/IMG_0788.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Jacking in and Jockeying Off&lt;/h2&gt;
&lt;p&gt;This summer I finally started VJing in VRChat. This is a long time coming! I&apos;ve been lurking in the scene casually for a while and was a huge fan even before the pandemic hit and most people I know started checking it out. Huge thanks to &lt;a href=&quot;https://okgold.ca&quot;&gt;okgold&lt;/a&gt; for believing in me and inviting me to their sick Canada Day event. It was super surreal performing at an accurately modeled Nathan Philips Square that they created exclusively for the gig. I&apos;ve done one other event since, and will need to start booking for more soon surely!&lt;/p&gt;
&lt;p&gt;I also fell in love with a new open-source TouchDesigner alike called &lt;a href=&quot;https://tixl.app&quot;&gt;TiXL&lt;/a&gt; where I&apos;ve been doing most of my visuals recently. Such a fun piece of software!&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;./assets/summer2025/VRChat_2025-07-01_22-33-00.918_1920x1080.png&quot; alt=&quot;&quot; /&gt;
&amp;lt;iframe class=&quot;video-embed&quot; src=&quot;https://www.youtube-nocookie.com/embed/HeR292HKlgY&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;
&amp;lt;iframe class=&quot;video-embed&quot; src=&quot;https://www.youtube-nocookie.com/embed/iumrA3_r6jQ&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;&lt;/p&gt;
&lt;p&gt;I also recently went to an IRL OpenHDMI event hosted by &lt;a href=&quot;https://www.instagram.com/a.melv/&quot;&gt;Alex Melvin&lt;/a&gt; and got to reuse some of the visuals I had done in VR.&lt;/p&gt;
&lt;p&gt;&amp;lt;video src={AmigaBalls} muted controls&amp;gt;&amp;lt;/video&amp;gt;&lt;/p&gt;
&lt;h2&gt;3D Printing a Console&lt;/h2&gt;
&lt;p&gt;My good friend &lt;a href=&quot;https://bsky.app/profile/kerma.bsky.social&quot;&gt;Kerma&lt;/a&gt; found &lt;a href=&quot;https://www.etsy.com/listing/1798456484/ufo-50-lx-system-3d-print-files&quot;&gt;some files online to 3D print the LX-III&lt;/a&gt;, a fictional console from the game UFO50. We took a community published STL for the console originally meant for a 10&quot; screen and shrunk it down to fit a 7&quot; one. Because the controllers looked so similar, I made the effort to fit PCEngine compatible controller ports on the front. I decided to make a &lt;a href=&quot;https://github.com/OpenStickCommunity/GP2040-CE/pull/1445&quot;&gt;PR on the popular GP2040-CE Raspberry Pi Pico controller firmware&lt;/a&gt; so more people can benefit from the work I did to get this all connected.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;./assets/summer2025/lxsystem.jpg&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;./assets/summer2025/IMG_0892.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Touching Grass&lt;/h2&gt;
&lt;p&gt;In no paticular order. Here are some fun things I did outside with other people:&lt;/p&gt;
&lt;p&gt;I took Brio to visit a family friend and he instantly became best friends with their cat. He had such a hissy fit when we tried to take him to leave haha.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;./assets/summer2025/IMG_0780.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I made &lt;a href=&quot;https://html.green/archive/2025-07/luc/&quot;&gt;another website in a park&lt;/a&gt; with the other &lt;a href=&quot;https://html.green&quot;&gt;html.energy&lt;/a&gt; enjoyers&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;./assets/summer2025/htmlday.gif&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I went on a 3 day canoe trip with my Brother and his friends. &lt;a href=&quot;https://en.wikipedia.org/wiki/Portage&quot;&gt;Portaging&lt;/a&gt; is a shit ton of work, especially if your brother insists on bringing fresh food and 30lbs of cast-iron pans. Very rewarding though!&lt;/p&gt;
&lt;p&gt;&amp;lt;video src={Algonquin} muted controls&amp;gt;&amp;lt;/video&amp;gt;&lt;/p&gt;
&lt;p&gt;Couldn&apos;t help 3D printing some stuff for the trip too. I designed and printed this little caribiner loop for a bite-valve bottle I bought on sale.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;./assets/summer2025/IMG_0946.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;My partner and I volunteered at &lt;a href=&quot;https://repaircafetoronto.ca&quot;&gt;a local repair cafe&lt;/a&gt;. It was really sweet to get to know our neighbours a bit more and atleast attempt to prevent some stuff from going in landfills. Another super rewarding thing that I hope to be able to do regularly.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;./assets/summer2025/repaircafe.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
</content:encoded></item><item><title>Brio&apos;s Page</title><link>https://swiftp.cc/blog/brios-page/</link><guid isPermaLink="true">https://swiftp.cc/blog/brios-page/</guid><description>A webpage for my cat</description><pubDate>Sat, 09 Nov 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I made a site for my cat. I made it in a park with a bunch of people in toronto. You should go &lt;a href=&quot;https://html.green/archive/2024-07/luc/&quot;&gt;check it out&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title>Archiving some of my old youtube videos</title><link>https://swiftp.cc/blog/old-videos/</link><guid isPermaLink="true">https://swiftp.cc/blog/old-videos/</guid><description>I&apos;ve unlisted some of my old youtube videos, but I still want to keep them around</description><pubDate>Mon, 17 Feb 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I&apos;ve had a public youtube channel since at least 2009. It hasn&apos;t been used much, however I have published a handful of videos over the years; mostly youtube poop to share with friends and lots of school projects. I&apos;ve been meaning to get into &quot;content creation&quot; so I&apos;ve been hoping to clean up the channel a bit and clear out some of the older videos before I get started in earnest.&lt;/p&gt;
&lt;p&gt;I decided to unlist the videos rather than delete them outright so that I can share them here. Having been online since I was a child I&apos;ve noticed that my digital footprint has faded over time and I&apos;ve been surprised to find myself dissapointed with the loss of certain artifacts. Call it nostalgia, but it seems like more people could get value from seeing what a (more or less) healthy relationship with the internet as a kid looked like.&lt;/p&gt;
&lt;p&gt;That being said these videos are still pretty shitty, but I do still want to keep them somewhere for display. They do need a bit of context though. Hopefully this extra data about me doesn&apos;t bite me in the ass in the future :|&lt;/p&gt;
&lt;h2&gt;Noby Noby Boy Videos — May 2009 - Feb 2010&lt;/h2&gt;
&lt;p&gt;&amp;lt;iframe class=&quot;video-embed&quot; src=&quot;https://www.youtube-nocookie.com/embed/BSHgTsm2d3c&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;&lt;/p&gt;
&lt;p&gt;Noby Noby Boy was a game by Keita Takahashi for PS3&apos;s PSN and man it was so sick. It had this feature that let you upload clips straight to youtube which I made great use of. I hear the only way to play this is with a hacked PS3 or an emulator nowadays, and I suppose the online features (meant to track how long all users have collectively stretched their Noby Noby Boy) would also be down. Dang.&lt;/p&gt;
&lt;p&gt;See also (yes these are inside jokes):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=jRL69-BUSr8&quot;&gt;Noby Noby is Fatter Than Stitch&apos;s Tail&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=RJYLEJeB-OE&quot;&gt;Noby Noby Boy is Closer Than Oberlie&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Youtube Poops — June 2009 - July 2010&lt;/h2&gt;
&lt;p&gt;&amp;lt;iframe class=&quot;video-embed&quot; src=&quot;https://www.youtube-nocookie.com/embed/usMdfMTEpjw&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;&lt;/p&gt;
&lt;p&gt;A favourite pastime of my friends and I was to whip together dumb videos to make eachother laugh. We were always making these things; whether it was taking something innocent we said out of context, trolling, or simply just learning how to use some video-editing program or another.&lt;/p&gt;
&lt;p&gt;&quot;You Tube&quot;, the video highlighted above, is specifically referencing a video that Paula&apos;s younger brother&apos;s made. I like how you also get a little taste of what 2009s Youtube looked like in this one.&lt;/p&gt;
&lt;p&gt;See also:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://youtu.be/J2OVWiTdr4I&quot;&gt;Bodyless Snake Speaks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://youtu.be/3wonIFwvynA&quot;&gt;MAow&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=aoZkjauJfnA&quot;&gt;This one is a long story...&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;CyberCarRally HD Menu Screen — May 25th 2011&lt;/h2&gt;
&lt;p&gt;&amp;lt;iframe class=&quot;video-embed&quot; src=&quot;https://www.youtube-nocookie.com/embed/OrfTBNSJz6c&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;&lt;/p&gt;
&lt;p&gt;In high school I was enrolled in a specialized digital media and fine art program. In our tech class we had a number of dedicated assignments for learning stuff like Flash, Illustrator, Photoshop, web design etc (I plan on sharing that stuff here eventually too) but the highlight of each semester was definitely the independent study unit (ISU). Each time we did the assignment we had a chance to pick a medium and create essentially whatever we wanted. We also had to document the process and when finished present the project to the entire class. A bunch of my old videos on youtube are a result of that program.&lt;/p&gt;
&lt;p&gt;In 2011 I opted to leverage my elite gamer knowledge and experience making maps for games like Counter-Strike and Garry’s Mod to submit a legitimate source mod for my ISU. I had no idea how to code, so the best thing I could do was create a self-enclosed map that handled all of the logic for the game. I opted to make a “racing” game and dropped in some music that my friend Paula had recently produced.&lt;/p&gt;
&lt;p&gt;I’m excited to say that I managed to keep the files for CyberCarRallyHD preserved after all this time and you can &lt;a href=&quot;https://pub-c94e113880784f8f8227940d6abceeef.r2.dev/CyberCarRallyHD.zip&quot;&gt;find and play it for yourself here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;See also (other ISU videos):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=5K99LP6NayQ&quot;&gt;[ISU 2012] Cyber Crunch - Motion Tracking in After Effects&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=4I_dzV7XnFk&quot;&gt;[ISU 2013] NoReplyTV - 3D Motion Graphics&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=AAHZdl9k2pg&quot;&gt;[ISU 2013] Cinema 4D Test 2&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>Raymarching in TouchDesigner with RayTK</title><link>https://swiftp.cc/blog/raymarching-in-touch-designer-with-raytk/</link><guid isPermaLink="true">https://swiftp.cc/blog/raymarching-in-touch-designer-with-raytk/</guid><description>The transcript from the show-and-tell presentation I gave at Creative Code Toronto about raymarching</description><pubDate>Tue, 26 Nov 2024 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;The following is an edited transcript from a talk I recently gave at &lt;a href=&quot;https://creativecodetoronto.github.io/&quot;&gt;Creative Code Toronto&lt;/a&gt; on November 20th, 2024. You can view a recording of the talk &lt;a href=&quot;https://www.youtube.com/watch?v=xWkM9NkVVmY&quot;&gt;here&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Hey guys, my name is Luc. I&apos;m a creative developer from Toronto. Recently, I participated in &lt;a href=&quot;https://interaccess.org/event/2024/open-hdmi-fall-2024&quot;&gt;Interaccess&apos; Open HDMI event&lt;/a&gt; for the second time. It&apos;s basically like an open mic but you can do whatever visual you want in their 360 projection mapped room. I use it as an opportunity to experiment with new stuff outside of my day job, which mostly involves 3D web development.&lt;/p&gt;
&lt;p&gt;One of the things that’s been kind of fun for me is TouchDesigner. It lets me do creative coding without actually using code, which is a nice change of pace. One of the tools I saw that got developed recently is called &lt;a href=&quot;https://t3kt.github.io/raytk/&quot;&gt;&quot;RayTK.&quot;&lt;/a&gt; So RayTK is basically a set of TouchDesigner components for doing this 3D rendering technique called raymarching.&lt;/p&gt;
&lt;p&gt;Raymarching is this fancy technique for showing things in 3D using just one fragment shader. That means there’s no vertices, no meshes. If you’re familiar with 3D modeling in Blender or whatever, there aren’t any little points you drag around. A cube in raymarching isn’t defined by all those dots and connecting them. Instead, it’s just the math that represents the cube visually, and determining how it should look from a camera&apos;s perspective lets you render it in 3D.&lt;/p&gt;
&lt;p&gt;Right now isn&apos;t the best place to explain what all that means in detail, but if you’re curious, I’d recommend checking out &lt;a href=&quot;https://www.youtube.com/watch?v=62-pRVZuS5c&quot;&gt;some videos by Inigo Quilez&lt;/a&gt;—he’s way better at explaining all the math and concepts involved. He’ll literally break down how you represent a box, how you represent a cube, all that stuff, including the math behind it.&lt;/p&gt;
&lt;p&gt;Anyway, I think raymarching is a super interesting technique, and I’ve always wanted to be in a space where this stuff is happening all around me, so this was a great opportunity. The goal was to make it look like if you’re standing at the center of the 360 room, you’re immersed in the whole scene.&lt;/p&gt;
&lt;p&gt;Here’s what I came up with: I created four scenes, and I set up a little viewer to see what it looks like as if you’re in the room, so I could test it out.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;./assets/raymarching/TouchDesigner_WuSAwEUEK9.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;First I’ve got this cool mountain range thing. It’s not set up to transition between scenes in a super smooth way, but I wanted a little slider so you could fade to black, or just switch scenes.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;./assets/raymarching/TouchDesigner_rRdq3IA3kE.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I also made a cool piston scene.&lt;/p&gt;
&lt;p&gt;And the other thing is, there was a DJ playing, so I wanted to make sure the scenes reacted to music in some way. Last time, I tried doing fully audio-reactive visuals, but it didn’t work out great. This time, I just went with a beat detection system—so I could tap a button to set the beat, and the visuals would react to it. &lt;a href=&quot;https://derivative.ca/community-post/asset/tap-tempo-tap-sync/65370&quot;&gt;The tapping thing is a component I downloaded online, basically.&lt;/a&gt; So yeah, the piston scene now reacts to the beat. You can transition it, and it has this little animation.&lt;/p&gt;
&lt;p&gt;One thing that makes raymarching so cool is that doing &quot;infinite&quot; stuff is actually trivial. Like, literally mathematically infinite. That&apos;s what&apos;s happening here—there’s an infinite number of piston chains, and I’m not even keeping track of it. In a game engine, you’d have to do a bunch of tricks to render an infinite number of things, like object pooling or juggling between the objects that are visible, but with raymarching, I can just say, &quot;take this object and infinitely repeat it this way,&quot; and it just works.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;./assets/raymarching/TouchDesigner_JHfiW2VhlL.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The other two scenes I made are based on some &lt;a href=&quot;https://t3kt.github.io/raytk/reference/operators/sdf/apollonianSdf&quot;&gt;off-the-shelf&lt;/a&gt; &lt;a href=&quot;https://t3kt.github.io/raytk/reference/operators/sdf/gyroidSdf&quot;&gt;fractal functions&lt;/a&gt; that RayTK provides. I didn’t spend much time on them, but honestly, they turned out the best. I put in some sliders to adjust the fractal and tweak the color a bit. One of them is more of a traditional fractal look where I can increase the resolution and the complexity.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;./assets/raymarching/WBOZP3LDkR.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;So, how does this tool work? When you download RayTK, you get this node for TouchDesigner. You stick it in your scene, press Alt+R, and it pulls up a palette. These components are different from the usual palette in TouchDesigner, and they don’t really work with the other nodes in the traditional way. When you’re building something, you mostly use the RayTK operators, and then once you&apos;ve rendered it, you can use TouchDesigner&apos;s regular tools. For example, I’ve cut up my render and put it on four virtual walls, colorized it a bit, that kind of thing.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;./assets/raymarching/sajdEsQ1eJ.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I&apos;ll explain how the simpler scenes work—the ones I said looked better. Here’s what makes up that whole scene: I used an SDF, which stands for Signed Distance Function. It’s basically a mathematical formula that describes a shape, or more specifically, the distance from any point in virtual space to that shape. Inigo Quilez has a good explanation of it. So, this scene is just a fractal that’s rotating on the Y-axis, and I&apos;ve got sliders that let me tweak parameters like the scale and iteration to control how complex the fractal looks.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;./assets/raymarching/vocaz3eCrw.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;One neat thing about raymarching is the ability to combine shapes using unions. So, if you can represent a shape mathematically, you can combine it with other shapes really easily. You can even smooth out the edges between the two shapes to blend them. In my scene, I’ve got two shapes that are moving independently, but they’re smoothly combined along their edges. I used a &quot;rounded union&quot; for this, which lets me control the radius of the blending.&lt;/p&gt;
&lt;p&gt;For that particular scene, I also layered two different sets of noise, and at the peaks of the mountains, the noise gets more complex. It’s hard to describe exactly what I did since it’s been a while, and I kind of just did it in a bit of a fugue state, but there are definitely some glitches, like visual artifacts that happen when there’s too much detail. It ends up warping in a way that’s kind of cool.&lt;/p&gt;
&lt;p&gt;TouchDesigner, with RayTK, has been a fun way to play with raymarching without diving too deep into the math. There’s this whole culture around creating demos with techniques like this, often with tight constraints like making everything fit into 64 kilobytes. People try to create the coolest visuals they can, with music and everything, all in a tiny amount of code. I saw this one demo of a &lt;a href=&quot;https://x.com/vrc_yue/status/1858432771397734744&quot;&gt;simulated marble race, done in a single fragment shader.&lt;/a&gt; It was created during a demo party, using the exact same techniques I just showed you.&lt;/p&gt;
&lt;p&gt;I’m still figuring raymarching out, but I’ve been hyped about it for a while. I’m not the best at it, but it’s been fun.&lt;/p&gt;
&lt;h2&gt;Q&amp;amp;A&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;Someone asked why I didn&apos;t use TouchDesigner&apos;s audio-reactive features for the visuals.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Last time, I tried doing &lt;a href=&quot;https://lpalombo.github.io/open-hdmi-splatting/&quot;&gt;audio-reactive visuals in the browser&lt;/a&gt;, but latency was a big issue. Even with TouchDesigner, you ideally need a dedicated sound card. I’ve noticed that a lot of VJs go for beat matching instead of audio-reactive visuals, and that’s what I went for here. It gives you more control over the timing.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Someone also asked if I’ve played with Shader Park for TouchDesigner, which is another raymarching system, mostly in JavaScript.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I haven’t yet, but I’ve heard of it. I know there’s UP5 stuff for Shader Park too. I like the node-based setup in TouchDesigner—it makes sense to me because it matches how I understand the technique.&lt;/p&gt;
&lt;p&gt;Anyway, there are lots of cool connections people make between all these different libraries and TouchDesigner. There’s even another library called &lt;a href=&quot;https://www.patreon.com/josefpelz&quot;&gt;T3D for TouchDesigner&lt;/a&gt; that’s good for volumes—like if you have particle sets and want to do cool stuff with them, you can raymarch through them to create volume textures. It’s neat to see how far you can push this stuff.&lt;/p&gt;
</content:encoded></item></channel></rss>