Kinematic particles seem to be always made as Rigid Particles

I noticed recently that all actors in our world produce either static particles or rigid particles - never kinematic particles. In the CVD all particles are under either Static or Rigid - no kinematic. Looking at the particle setup, I would expect rigid to be used for primitives that need to simulate physics and kinematic to be used for primitives that do move but do not need rigid body physics. For example, we have some bodies that animate to swing on a hinge that are being created as rigid bodies.

I searched through the code, and it looks like InitBody checks if the primitive component is static to either make a static or rigid particle. The CreateParticle function for kinematic particles in not referenced outside of headless chaos tests. Kinematic particles also don’t seem to have sleep states which I think may be one of the reasons that rigid is always used. I’m not sure and any clarification on why kinematic particles are defined in the codebase but never used would be appreciated.

Is there a way to have particles that don’t need rigid physics generate as kinematic if we know they will never simulate physics. This would be desirable because kinematic particles seem to have less fields that rigid particles (inertia, center of mass, etc) - which would save some memory.

Steps to Reproduce
Set primitive component to not simulate physics. Note that a rigid particle is created in the chaos visual debugger.

Hi,

It’s true that all kinematics are created as rigids as it is possible at any point in the runtime that a kinematic object becomes dynamic. Static objects stay static but as kinematics can transition to dynamic at any time we need to have the particles correctly situated in the dynamic particle SOA. It would be possible to support a particle that is kinematic and could never change state, although that isn’t a trivial change to make and we don’t currently plan to implement such a feature.

Benn.

Thanks for the speedy clarification. That lines up with what I’ve seen in the codebase. I may do a test to see if these could be created as kinematic for my own curiosity. I believe for some actors in our scene that we could use as a test. Thanks again for clarifying that!