# Wish : More advanced / realistic fields

#1

I’d like to see more possibilities added to the field components, and a more realistic approach.
For example, a “Field due to a vector force” doesn’t make much physical sense.
From what I understand about fields, the force applied to a particle is proportional to :
-The field intensity where the particle is located
-The charge of the particle
-The speed of the particle (in the case of magnetic fields)

None of these three parameters can be set in a realistic way :
-The variation law cannot be changed (and by the way, the one that is used is not explicited)
-The field can’t be carried by a 3D curve or a surface
-The definition of transient charge and speed would require the existence of a “Particle” object type.

The present set of fields can produce elegant “field-like” effects thanks to the ability to compose fields, specially with the physically dubious “Spin force” fields, but fail to allow physically accurate simulations.

Also, working with fields cries for a looping mechanism, so I seize the occasion to ask for “in-house” looping components.
The hope is that plug-ins like Kangaroo would use this looping mechanism instead of a proprietary one, thus allowing to leverage various tools in richer simulations.

Fields in Kangaroo, how cool would that be ?

(David Rutten) #2

I hope to make fields a whole lot better. I also want to use them a lot more. Many parameters that are currently numbers (circle radii, line lengths, motion vectors, rotation axes, scaling factors, … a very long list) are positional, and as such can be replaced by field inputs.

Well, yes, that is one particular kind of field. Particle charge and momentum are important when simulating the trajectory of particles through electro-magnetic fields. But that is a very dynamic application. Most Grasshopper geometry is static and for this fields would be used in different ways. You should think of fields as volumes that can have a different number/vector/transformation/colour at each coordinate, rather than something more specific like magnets or wind.

True. Falloff should be more flexible, but there’s a problem with computing the field strength of an emitter more complicated than a point, if the falloff is more complicated than one-over-distance or one-over-distance-squared. I’ll have to confer with some of the maths experts in McNeel when the time comes, but options here may be more limited than you’d think just because of the sheer mathematical difficulties.

This too is mathematically challenging. It’s easy enough to only use the closest-point on a curve, but if the curve (or surface) in its entirety needs to be taken into account as a field source then the integrals become unfeasible. Lines and circles are sort of doable, but anything more complicated than that will be a challenge. In the end a lot of approximation may be needed, which will affect both performance and accuracy.

I don’t understand. “transient”? If we’re talking solving systems over time, then that is not my initial plan. Grasshopper is unlikely to evolve into a full blown animation package, there are too many other (more important) features to improve and add.

Looping yes, high on the list, animation no.

Fields are (and will be) a standard data type, so Kangaroo is welcome to use them.

#3

Hi David,

Who are you to decide what Grasshopper ought to do ot not ?

It’s not so much animation, but rather simulation which I find truly exciting and useful.
Two days ago, I drove by the construction site of the ITER fusion reaction experiment.
It sparked in me a sudden interest for magnetic confinement geometries, and I thought I’d try to simulate a Tokamak in Grasshopper, for the heck of it.
The magnet symbol on the “fields” components seemed promissing, but I soon understood that simulating the effects of a complex magnetic field wasn’t going to be easy with these tools.

I saw examples of definitions that use loops to simulate particle dynamics in simple fields, but the toroidal field shape seems out of reach.
I understand your point about mathematical complexity. I guess that’s why it took so long to come up with a working Stellerator configuration.

Kangaroo’s looping system is embeded in the “Kangaroo physics” component, and does not welcome constraints (or “goals”) from exterior components.
Intuitively, it would seem more logical to use a “universal” looping system across all plugins to enrich simulation possibilities.