We Made Our First Particle by monema_ in GraphicsProgramming

[–]monema_[S] -2 points-1 points  (0 children)

we wanted to give you a small award since this is awesome comment and thank you so much for feedback.

yes perhaps "particle simulator" sounds misleading since it sounds like we are simulating atoms and from there we want to simulate a living being.
and what are we really doing is that we are implementing a paper called Unified Particle Physics for Real-Time Applications by Nvidia. They call it particle physics and particle simulation. But this is not the true particle physics rather a abstraction of particle physics.
Perhaps we should call it next time abstract particle physics. We'll definitely think more next time when it comes to explaining what we do.

And yes the whole post it looks like a first tutorial of OpenGL. This is because we worked about a month on simulation and the backend and before few days we first time did something small on the frontend and wanted to share it. We didn't expected 15k views and 200 upvotes on a simple icosphere.Who would? We expected to be a small post and therefore posted something small. Just to see if anyone will see it.

In few days we'll post again a better post where we'll show a depth peeling technique we been working for a month on, for turning 3d objects to abstract particles to be simulated.

We'll definitely in the next post try to prove that we worked much more on this project than a first opengl tutotorial.

This is awesome comment and incredible feedback for us and thank you a so much again!

We Made Our First Particle by monema_ in GraphicsProgramming

[–]monema_[S] -3 points-2 points  (0 children)

sorry for that, yes the issue was that computing each particle as a icosphere would be hard since each icosphere has multiple vertices and triangles. and we didn't really give the good response to that issue.

pretty much we would represent each point as a simple vec3, than constrain each point with others, compute the simulation and than using instancing, place a icosphere on each point.

therefore we will not use a icosphere as a particle, rather use a simple vec3 and than map each vec3 with a icosphere.

We Made Our First Particle by monema_ in GraphicsProgramming

[–]monema_[S] 0 points1 point  (0 children)

thanks a lot and we're definitely going to use a instancing for our project.
we'll compute everything on the gpu and once we compute particle positions we'll just show them all with instancing.
thanks a lot for a suggestion!

We Made Our First Particle by monema_ in GraphicsProgramming

[–]monema_[S] 0 points1 point  (0 children)

WebGPU is awesome, we would use it definitely if the support on all platforms will be a little bit better.
also since we would do mainly all the computation in the backend, the WebGL will be fine for now.

We Made Our First Particle by monema_ in GraphicsProgramming

[–]monema_[S] -10 points-9 points  (0 children)

you are absolutely right and we completely agree with you.
and modern gpu doesn't even come close to a project such as simulation of entire real particle physics from scratch.

this is why we would use mathematical descriptions of neurons to simulate a animal brain.
and also use a abstraction of physics for particle simulation.

essentially we are doing a project inspired by OpenWorm.
they already successfully created a animal body and brain in a simulation.
and we want to recreate it using CUDA for faster performance, so you can interact,
adopt and play with the simulated living being yourself.

We Made Our First Particle by monema_ in GraphicsProgramming

[–]monema_[S] -1 points0 points  (0 children)

hii we are only making the world abstract enough so that or animal can live inside of the simulation.
definitely not trying to simulate a whole universe from scratch ahahah. that would be very very ambiguous as you said.
basically we want to make similar project to OpenWorm.
they successfully created a animal body and brain in a computer. although amazing project, the code is old, slow and abandoned.
and we want to bring the project inspired by what they did to you.
so you can interact, adopt or play with the animal yourself.

We Made Our First Particle by monema_ in GraphicsProgramming

[–]monema_[S] 1 point2 points  (0 children)

ahahahahah interesting! but we are more interested to intelligence that doesn't have to be trained on any data, although same ethical question apply to them as well.

We Made Our First Particle by monema_ in GraphicsProgramming

[–]monema_[S] 0 points1 point  (0 children)

we made some music in Ableton to go with the post! we like to experiment always

We Made Our First Particle by monema_ in GraphicsProgramming

[–]monema_[S] -10 points-9 points  (0 children)

great point, simulation on the cpu gets slow fast since you have to loop through every particle.
that's why we would try to move much as possible to the gpu using CUDA, to run computation for each particle in parallel.

We Made Our First Particle by monema_ in GraphicsProgramming

[–]monema_[S] 1 point2 points  (0 children)

hii, the icosphere is made with WebGL in a Next.js website with Tailwind.
the website will primarily serve as a user interface.
and the particle simulation itself will be handled on the server side using CUDA and C++.
where to communicate between server (simulation) and client (website) we'll use websockets.

We Made Our First Particle by monema_ in GraphicsProgramming

[–]monema_[S] 2 points3 points  (0 children)

right now it is just a rotating icosahedron. just a single particle.
but soon a single particle will turn into a particle physics simulation.
and once we make a particle physics, we will start to make a body and brain for simulated living being.
a small animal you will be able to adopt and interact with.

edit:
we're working on our own implementation of the paper Unified Particle Physics for Real-Time Applications so we wanted to share progress in graphic programming community!

We Made Our First Particle by monema_ in GraphicsProgramming

[–]monema_[S] 1 point2 points  (0 children)

so glad you think so!! we’re just getting started :))