The basic problem? Given a collection of points, curves, or surfaces in space, find a well-distributed arrangement that avoids (self-)intersection.
To make things interesting, you also usually have some constraints—like: the geometry is contained inside a bunny!
(3/14)
Why would you want to do this?
Well, *point* repulsion is already used in every major area of computer graphics: from image stippling to mesh generation to density estimation to fluid simulation!
But surprisingly little work has been done on repulsive curves & surfaces… (4/14)
And yet there are *all sorts* of things you can do with higher-dimensional repulsion—from better graph layouts, to generative modeling, to robotic path planning, to intersection-free modeling & illustration, to artificial tissue design, to unraveling mathematical mysteries!(5/14)
Repulsion goes far beyond (literally) traditional collision-aware design & modeling: rather than slamming on the brakes right before the moment of impact, repulsive optimization is all about finding a harmonious *global* balance of forces, long before collisions occur. (6/14)
Imagine, for instance, playing a game of pool with charged particles rather than rigid bodies.
In contrast to collision, where you can aggressively prune away distant barrier functions, the whole point of repulsive optimization is to get long-range forces into equilibrium (7/14)
Beyond just dealing with O(n²) interactions, repulsive energies lead to some rich & interesting challenges. For one thing, repulsive energies for points don't nicely generalize to curves & surfaces. For another, you have to deal w/ optimization of "fractional derivatives." (8/14)
…Rather than regurgitate everything here on Twitter, I'll point again to this talk:
Since I know it's easy to get lost in the math & switch off the video, I gave each section a level of difficulty. Don't feel bad about skipping to the fun stuff! (9/14)
You might also be interested in checking out this longer Twitter thread, which also goes deeper into the details for curves:
But the generalization to repulsive surfaces lets us do some really beautiful things like never before. (10/14)
To end with just one cool example, consider this pair of handcuffs in a "linked" and "unlinked" configuration.
Do you think it's possible to unlink the handcuffs, without breaking them apart or letting them pass through each other? (11/14)
If you said "yes," you were right (hey, you had a 50% chance!)
But can you show me how?
There are lots of beautiful drawings of this counter-intuitive transition—but unless you have a good geometric imagination, they can be pretty hard to follow. (12/14).
However, we can use repulsive optimization to make this remarkable topological phenomenon come to life.
Just minimize tangent-point energy starting in both linked and unlinked configurations, then join the two movies together (the 2nd one playing backwards). Voilà! (13/14)
The paper/videos have lots of other examples of new & different things you can do with repulsive shape optimization.
But the real limitation is *our* own creativity!
I'd love to hear what ideas this sparks for you, and what problems, challenges, & creations it leads to…(14/14)
• • •
Missing some Tweet in this thread? You can try to
force a refresh
Entropy is one of those formulas that many of us learn, swallow whole, and even use regularly without really understanding.
(E.g., where does that “log” come from? Are there other possible formulas?)
Yet there's an intuitive & almost inevitable way to arrive at this expression.
When I first heard about entropy, there was a lot of stuff about "free states" and "disorder." Or about the number of bits needed to communicate a message.
These are ultimately important connections—but it's not clear it's the best starting point for the formula itself.
A better starting point is the idea of "surprise."
In particular, suppose an event occurs with probability p. E.g., if the bus shows up on time about 15% of the time, p = 0.15.
How *surprising*, then, is an event with probability p? Let's call this quantity S(p).
We often think of an "equilibrium" as something standing still, like a scale in perfect balance.
But many equilibria are dynamic, like a flowing river which is never changing—yet never standing still.
These dynamic equilibria are nicely described by so-called "detailed balance"
In simple terms, detailed balance says that if you have less "stuff" at point x, and more "stuff" at point y, then to maintain a dynamic equilibrium, the fraction of stuff that moves from x to y needs to be bigger than the fraction that moves from y to x.
Detailed balance is also the starting point for algorithms that efficiently generate samples of a given distribution, called "Markov chain Monte Carlo" algorithms.
The idea is to "design" a random procedure that has the target distribution as the equilibrium distribution.
Even though Newton's laws are deterministic, the behavior of many interacting bodies is so chaotic that it looks essentially "random."
Statistical mechanics effectively says: why bother with all those complex trajectories? Just go ahead and replace them with truly random motion.
A good way to think about the difference is to imagine actually simulating the particles.
With Newtonian simulation, you track both positions & velocities. Velocities increase or decrease according to forces (like attraction/repulsion); positions are then updated by velocities.
With (overdamped) Langevin simulation, you track just the positions. Positions follow the same forces (i.e., the potential gradient), plus some random "noise" that models all that chaotic motion.
Near equilibrium, these two simulators yield motions with very similar statistics.
I work on fundamental algorithms for geometric and visual computing. Here's a taste of our group's work, as a list of "explainer" threads posted on Twitter/X over the years. (🧵)
Signed distance functions (SDFs) are an important surface representation, which can be directly visualized via the “sphere tracing” algorithm.
At #SIGGRAPH2024 we showed how to sphere trace a whole new class of surfaces, based on *harmonic functions* rather than SDFs. [1/n]
Harmonic functions are everywhere in geometric & visual computing, as well as in math, engineering, and physics. So, it's pretty powerful to be able to visualize them directly.
We show how they open up a variety of applications beyond what people currently do with SDFs. [2/n]
For instance, want to visualize a point cloud as a smooth surface?
Don't need to run a reconstruction algorithm (or fit a neural net): just trace some rays, and voila! [3/n]