Domain Warping, Inverse Kinematics, and Iterations
#082 Creative Coding / Generative Arts Weekly
Website | Instagram | Youtube | Behance | Twitter | BuyMeACoffee
Art cannot save the world, but it does help you understand the world inside of you. - Krist Pauwels
Good evening or morning depending on what side of the earth you are waking to read my shenanigans.
I hope your week is going well and that I can bring a couple minutes of interesting finds in the following entries.
This week, I've applied some of my recent learnings to implement 3D work I've been eager to explore for nearly a year. Currently, I'm experimenting with Blender as a templating tool to understand how I might develop a growth algorithm and create something intriguing that I can later code from scratch. I still have much to learn about materials and their proper production in Blender. This will help me grasp the components, which I can then break down even further.
You might wonder, "Why not just be content with what you have?" That's a bit too sensible, of course. There's a special intent behind making something. Creating from scratch allows you to infuse your own flavor of quality or simply approach it differently.
Damsel in Distress
I came across this photograph a couple of weeks ago, and I must say there's a melancholy sense to it. It also reminded me of the displacement pattern similar to a scene in the movie Blade Runner, where water caustics aren't distorting the image but definitely provide a mood. (See the following video on how to recreate it.)
The artist describes the piece as:
Everyone has an urge to save a drowning woman—but some women don't wish to be saved. Laurence Demaison is one of them. Dozens of times, she has "drowned" herself, for the cause of art. "Autoportraits," a show of Demaison's photographs, will appear at the Galerie BMG in Woodstock, beginning May 22.
There's something oddly distorting (no pun intended) that creates a sense of something missing.
When we obscure reality and let it become opaque, we hide or lose the reality of the self, making us want to see or project the ourselves in its altered form. I believe it was Freud (it's been a couple of years since I've taken a psychology course) who first introduced the concept of defense mechanisms and how we use projection and repression when dealing with our true selves.
This altered view sometimes is a way to keep ourselves protected from becoming hurt and vulnerable. It also is a way to insure that the turbulence of other’s doesn’t become one’s own problem.
Yet it isn't just a form of defense. Clifford Geertz, an anthropologist, discusses a similar concept:
Man is an animal suspended in webs of significance he himself has spun
Geertz speaks of these webs of significance—those we align with or befriend, but also the projection we display of ourselves. We desire our significance to be perceived in a specific way by those around us.
Why all this psychological musing? Well, I believe it's always valuable to consider the purpose behind any piece we create. Sure, we can depict water simply as water, but often there are deeper meanings behind our creations.
We might not even be aware of the symbolism in what we create, yet we instinctively know there's a purpose driving our creative choices.
On that note, how does one replicate such a distortion? Here are a few places to start with.
Water Displacement in P5 (video)
This will give you the patterns you might want to use to warp an image. But here are a few implementations to get the image above’s effect using a method called domain warping.
On that note, I hope you find some interesting articles and links!
Till next time!
Chris Ried
P.S. Let me know if you have suggestions or interesting content. Send it my way!
Mathematik, Grafik und Programmierung
This website serves as a comprehensive repository of captivating chaotic systems, meticulously curated by Meier. Visitors will discover an extensive collection of information regarding chaotic attractors, ranging from the well-known Lorenz attractor to more obscure systems. The site offers detailed explanations, mathematical formulas, and visually striking representations of these complex dynamical systems. For those interested in the intersection of mathematics, physics, and computer graphics, this resource provides an invaluable opportunity to delve into the mesmerizing world of chaos theory and its applications.
The Generative Part of Generative Art
Part of the creation of the Craft Lab brand has involved generative elements. I have always been interested in them, and a community platform built for design engineers felt like the perfect opportunity to explore and enforce my experience with generative art.
The Engineering Behind Vector Networks
This post can be thought of as an introduction to a really interesting problem space, and as a resource for people interesting in making use of some aspects of Vector Networks for future applications. I hope it succeeds in providing value to both developers being introduced to new concepts and ideas, and to designers interesting in learning more about the tool they know and love.
Blender Shader Nodes
This video is quite lengthy (1.5 hours long), but it's an excellent resource for anyone wanting to understand how shaders work without delving into the complexities of GLSL or C++. If you're new to coding, these languages can be overwhelming (although the Book of Shaders is a great resource). I highly recommend this video if you haven't coded much. The presenter demonstrates how lights, materials, and environments work by building them in Blender's node shader system.
Hex Glitch
After examining the creations made in Blender, which are truly impressive, I find Blender to be "easy mode" when it comes to digital 3D creation. While one can accomplish a great deal with it, looking at a piece like Hex Glitch—written from scratch in GLSL—is a different experience altogether. It's astounding to realize that with careful thought and relatively little code, one can be truly stunned by the work of ignius on Shadertoy.
DimensionX: Create Any 3D and 4D Scenes from a Single Image
this paper, we introduce DimensionX, a framework designed to generate photorealistic 3D and 4D scenes from just a single image with video diffusion. Our approach begins with the insight that both the spatial structure of a 3D scene and the temporal evolution of a 4D scene can be effectively represented through sequences of video frames. While recent video diffusion models have shown remarkable success in producing vivid visuals, they face limitations in directly recovering 3D/4D scenes due to limited spatial and temporal controllability during generation. To overcome this, we propose ST-Director, which decouples spatial and temporal factors in video diffusion by learning dimension-aware LoRAs from dimension-variant data. This controllable video diffusion approach enables precise manipulation of spatial structure and temporal dynamics, allowing us to reconstruct both 3D and 4D representations from sequential frames with the combination of spatial and temporal dimensions. Additionally, to bridge the gap between generated videos and real-world scenes, we introduce a trajectory-aware mechanism for 3D generation and an identity-preserving denoising strategy for 4D generation. Extensive experiments on various real-world and synthetic datasets demonstrate that DimensionX achieves superior results in controllable video generation, as well as in 3D and 4D scene generation, compared with previous methods.
When seeing how we continue to progress from the first DreamGAN tech from 2017 to diffusion in 2024. It is just an interesting continued progression not just for the innate technical feat of what it can do, but just the idea of replicating or mimicking the functions of our brains is wild. Just to understand how much computation our brain has to do in order to sense or perhaps prebuild an understanding of what is just around the corner is definitely powerful and scary all at the same time.
Abstract Nature of Type with Creative Coding
A ‘forme’ is a tight arrangement of type set inside a locked chase for letterpress printing. Regulated by the constraints of its metal framework and underlying grid structure, the spacing, kerning and direction of its letter blocks are “strictly limited by the process”: a quality inherent to the long-established method that Anthony Burrill sees as one of the things that makes it so interesting. Like many traditional disciplines however, its interest can also lie in a deconstruction of set methods – a bending of the rules.
Inverse Kinematic Procedural Animation
Learn how to program a robot limb using inverse kinematics. We step through the coding for the cyclic coordinate descent algorithms, one of the simplest approaches to inverse kinematics. Great for robotics and procedural animations.
Moss Voltaics
This project is the exploration how moss could be used as a source of renewable energy. Mentioned emerging technology is called biophotovoltaics (BPV) which uses the natural process of photosynthesis to generate electrical energy. Photosynthesis is a process by which plants and algae convert carbon dioxide from the atmosphere into organic compounds using energy from sunlight. The plants use these organic compounds (like carbohydrates, proteins and lipids) to grow. When the moss photosynthesizes it releases some of these organic compounds into the soil, which contains bacteria. The bacteria break down these organic compounds, which they need to survive, liberating by-products that include electrons. By providing an electrode for the micro-organisms to donate their electrons to, the electrons can be harvested as electricity. These electrons are captured by conductive materials inside the prototype.
KMUTT Learning Center
According to the KMUTT Roadmap 2020, the university is aspiring to be one of the world class universities in the area of science and technology. For the Learning Innovation, the design by MAB Studio (Achawin Laohavichairat) used biomimicry as a natural inspiration to make the building harmony with the context. The building became a new transition of the university to transfer people to go to each building and to create the structure that can show the potential of the engineering because that is an image of the university, the biomimetic strategies that integrate form, material, and structure into a single process. We try to observe and study the behavior of natural form. The structure is derived from the geometry of an infinite array of the structure. The structure in the building is a light weight structure. There is main circulation in the building and each program was designed along the main circulation. There are three dimensional structures as a space truss module those transfer the load to each other. The structural module was created by a natural pattern.
This is a project from back in 2012 but I find it inspirational and interesting to continue to see how natural structure inspires the architecture
Events
ITERATIONS 2024 - Creative Coding Symposium
How do recent technological developments empower makers to generate new creative avenues? How is the creative coding landscape going to evolve in the coming few years? These questions will be explored during the creative coding symposium ITERATIONS.
With a focus on inclusivity, we invited a group of creatives from different creative coding niches. This edition will focus on four themes: developing design tools (in the browser), sustainable computing, world-building, and creative education. We will explore them through presentations, performances, interactive sessions, and workshops.
Books
Nature of Code
What if you could re-create the awe-inspiring flocking patterns of birds or the hypnotic dance of fireflies—with code? For over a decade, The Nature of Code has empowered countless readers to do just that, bridging the gap between creative expression and programming. This innovative guide by Daniel Shiffman, creator of the beloved Coding Train, welcomes budding and seasoned programmers alike into a world where code meets playful creativity.
If you haven't read the previous edition of this book, it's worth your time to do so. It's an excellent resource for understanding how to build natural (and unnatural) systems using code. I've always loved this book because it distills all the wisdom Dan Shiffman shares in his The Coding Train YouTube series into one comprehensive guide. The most notable update in this new edition is the switch from Processing (a Java-based language) to the p5.js JavaScript framework.