58 void declare_fields(
const std::shared_ptr<NetworkGeometryBuffer>& buffer)
const;
79 void on_buffer_ready()
override;
152 std::shared_ptr<Nodes::Network::GpuFieldOperator> particle_op,
153 bool gate_alive =
false);
156 void on_buffer_ready()
override;
159 bool on_before_execute(
161 const std::shared_ptr<VKBuffer>& buffer)
override;
212 void on_buffer_ready()
override;
214 void on_iteration_barrier(
216 const std::shared_ptr<VKBuffer>& buffer,
217 uint32_t
index)
override;
300 uint32_t live_count = 0,
301 const std::shared_ptr<Nodes::Network::GpuFieldOperator>& particle_op =
nullptr,
302 bool transfer_on_claim =
false);
305 void on_buffer_ready()
override;
308 void processing_function(
const std::shared_ptr<Buffer>& buffer)
override;
393 std::shared_ptr<Nodes::Network::GpuFieldOperator> particle_op,
394 bool transfer_on_claim =
false);
397 void on_buffer_ready()
override;
399 bool on_before_execute(
401 const std::shared_ptr<VKBuffer>& buffer)
override;
454 void on_buffer_ready()
override;
std::vector< uint32_t > m_claimed_by_readback
std::shared_ptr< VKBuffer > m_readback_staging
Nodes::Network::PhysicsOperator * m_physics_op
std::shared_ptr< VKBuffer > m_upload_staging
std::vector< float > m_accreted_mass_padded
Counts how many particles each survivor swallowed this cycle.
Resolves absorption chains to their root via parallel pointer jumping.
Resets mutation_claimed_by[i] to i and mutation_swallow_count[i] to 0 for every particle.
std::shared_ptr< Nodes::Network::GpuFieldOperator > m_particle_op
uint64_t m_built_revision
Deterministic pairwise claim over the completed spatial hash.
std::shared_ptr< Nodes::Network::GpuFieldOperator > m_particle_op
uint64_t m_built_revision
Visually swallows absorbed particles into their survivor, which grows and heats up with how much it h...
Relabels every vertex absorbed across a cluster boundary into its claimant's cluster: the "hop" / tra...
ComputeProcessor operating on named state fields of a NetworkGeometryBuffer, plus optionally the buff...
N-body physics simulation with point rendering.
void declare_fields(const std::shared_ptr< NetworkGeometryBuffer > &buffer) const
Declare the state fields the claim pipeline reads and writes.
float absorb_radius
A claims B when length(pos(B) - pos(A)) < absorb_radius and index(A) < index(B).
Parameters for the deterministic pairwise claim protocol built on top of a completed spatial hash.
Uniform grid parameters shared by every stage of the hash build.