Estou organizando a simulação física no projeto fluidtrack, adicionado como submodulo a esse repositório.
Abri essa issue pra discutirmos detalhes sobre a interação do flúido com o objeto. Os detalhes pra rodar o software estão no README.
A discussão sobre a simulação do flúido em si está sendo feita aqui.
A biblioteca exporta o resultado da simulação pra um arquivo que contem f frames, cada frame contem v vértices, e cada vértice é composto por um vetor de posição e um vetor de velocidade. As unidades destes vetores estão em metros numa escala 1:100.
Quando um request é feito, a biblioteca cria um objeto esférico de 1m (0.01m na escala do projeto) com massa de 1kg na posição indicada. Utilizando os dados já exportados do flúido, a biblioteca calcula a interação do flúido com o objeto frame a frame (tracking).
O framework ReactPhysics3D está sendo usado para calcular a interação do objeto com o terreno e a gravidade.
O desenvolvimento agora se dá no sentido de otimizar a função updateFlow do arquivo fluidtrack.cpp, que é responsável por calcular a força exercida pelo campo de vetores do flúido no objeto a cada frame.
Os questionamentos que já surgiram são:
Os vetores são formados a partir das partículas do flúido. Em uma simulação de baixa resolução essas partículas podem chegar a 10m de distância entre si. Alguma forma de interpolação talvez seja necessária.
Como modelar matematicamente a interação entre um campo de vetores de velocidade de um flúido com a força que ele exerce sobre o objeto?
Como modelar o empuxo nesse sistema (consideração a necessidade de interpolação)? E quais fatores sobre os rejeitos são relevantes aqui?
Existem outros fatores que precisam ser modelados e podem ser extraídos desse campo de velocidade? (A ReactPhysics3D computa torque em relação ao centro de massa do objeto pra cada força aplicada)
Estou organizando a simulação física no projeto fluidtrack, adicionado como submodulo a esse repositório. Abri essa issue pra discutirmos detalhes sobre a interação do flúido com o objeto. Os detalhes pra rodar o software estão no README.
A discussão sobre a simulação do flúido em si está sendo feita aqui.
A biblioteca exporta o resultado da simulação pra um arquivo que contem f frames, cada frame contem v vértices, e cada vértice é composto por um vetor de posição e um vetor de velocidade. As unidades destes vetores estão em metros numa escala 1:100.
Quando um request é feito, a biblioteca cria um objeto esférico de 1m (0.01m na escala do projeto) com massa de 1kg na posição indicada. Utilizando os dados já exportados do flúido, a biblioteca calcula a interação do flúido com o objeto frame a frame (tracking). O framework ReactPhysics3D está sendo usado para calcular a interação do objeto com o terreno e a gravidade.
O desenvolvimento agora se dá no sentido de otimizar a função updateFlow do arquivo fluidtrack.cpp, que é responsável por calcular a força exercida pelo campo de vetores do flúido no objeto a cada frame.
Os questionamentos que já surgiram são: