{"id":302,"date":"2026-03-19T14:04:33","date_gmt":"2026-03-19T14:04:33","guid":{"rendered":"https:\/\/pbraudio.org\/?page_id=302"},"modified":"2026-03-23T22:52:07","modified_gmt":"2026-03-23T22:52:07","slug":"physicssolver","status":"publish","type":"page","link":"https:\/\/pbraudio.org\/index.php\/physicssolver\/","title":{"rendered":"physicsSolver"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\"><strong>Physical dynamics<\/strong> <strong>reverse-engineer engine.<\/strong><\/h1>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h1 class=\"wp-block-heading\" style=\"font-size:24px\">physicsSolver is the engine behind pbrAudioShaders and pbrAudioRender. It takes your 3D animation sequences and reconstructs the hidden physics, like forces, collisions and contact events, that standard frame rates miss. The output is audio-force data that drives physically-based sound synthesis, bringing your animations to life with physically based audio.<\/h1>\n\n\n\n<div style=\"height:80px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h1 class=\"wp-block-heading has-text-align-left\">Why physicsSolver?<\/h1>\n\n\n\n<h1 class=\"wp-block-heading\" style=\"font-size:24px\">3D animations are typically rendered at 24 or 30 frames per second. That&#8217;s fine for visuals, but audio needs far more detail. A collision or scraping sound happens in milliseconds the details are lost between frames.<\/h1>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-columns mlrg-reverse-mobile is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:50%\">\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1920\" height=\"1080\" src=\"https:\/\/pbraudio.org\/wp-content\/uploads\/2026\/03\/motion-blur_32step-fx.png\" alt=\"\" class=\"wp-image-395\" style=\"object-fit:cover;width:1200px;height:180px\" srcset=\"https:\/\/pbraudio.org\/wp-content\/uploads\/2026\/03\/motion-blur_32step-fx.png 1920w, https:\/\/pbraudio.org\/wp-content\/uploads\/2026\/03\/motion-blur_32step-fx-300x169.png 300w, https:\/\/pbraudio.org\/wp-content\/uploads\/2026\/03\/motion-blur_32step-fx-1024x576.png 1024w, https:\/\/pbraudio.org\/wp-content\/uploads\/2026\/03\/motion-blur_32step-fx-768x432.png 768w, https:\/\/pbraudio.org\/wp-content\/uploads\/2026\/03\/motion-blur_32step-fx-1536x864.png 1536w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:50%\">\n<h1 class=\"wp-block-heading\" style=\"font-size:24px\"><em><strong>physicsSolver<\/strong><\/em> bridges this gap by analyzing motion as a continuous signal, not discrete frames, detecting collisions at sub-frame precision.<\/h1>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:50%\">\n<h1 class=\"wp-block-heading\" style=\"font-size:24px\"><em><strong>physicsSolver<\/strong><\/em> generate audio-force data from the reconstructed forces that occurred <em>between<\/em> your animation frames that pbrAudioShaders engines use to synthetize realistic sounds.<\/h1>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:50%\">\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"432\" src=\"https:\/\/pbraudio.org\/wp-content\/uploads\/2026\/03\/envelopes-768x432-1.jpg\" alt=\"\" class=\"wp-image-394\" style=\"object-fit:cover;width:1200px;height:180px\" srcset=\"https:\/\/pbraudio.org\/wp-content\/uploads\/2026\/03\/envelopes-768x432-1.jpg 768w, https:\/\/pbraudio.org\/wp-content\/uploads\/2026\/03\/envelopes-768x432-1-300x169.jpg 300w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h1 class=\"wp-block-heading\" style=\"font-size:24px\">Need Help?<\/h1>\n\n\n\n<h1 class=\"wp-block-heading\" style=\"font-size:24px\">For questions or issues, please open an issue in the repository.<\/h1>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-buttons is-horizontal is-content-justification-center is-nowrap is-layout-flex wp-container-core-buttons-is-layout-fc65f29c wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link has-text-align-center wp-element-button\" href=\"https:\/\/github.com\/Malcom3D\/pbrAudioRender\/releases\" target=\"_blank\" rel=\"noreferrer noopener\">Download<\/a><\/div>\n\n\n\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/github.com\/Malcom3D\/pbrAudioShaders\/tree\/main\/src\/physicsSolver\" target=\"_blank\" rel=\"noreferrer noopener\">Get Source<\/a><\/div>\n<\/div>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Physical dynamics reverse-engineer engine. physicsSolver is the engine behind pbrAudioShaders and pbrAudioRender. It takes your 3D animation sequences and reconstructs the hidden physics, like forces, collisions and contact events, that standard frame rates miss. The output is audio-force data that drives physically-based sound synthesis, bringing your animations to life with physically based audio. Why physicsSolver? &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/pbraudio.org\/index.php\/physicssolver\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;physicsSolver&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-302","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/pbraudio.org\/index.php\/wp-json\/wp\/v2\/pages\/302","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pbraudio.org\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/pbraudio.org\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/pbraudio.org\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/pbraudio.org\/index.php\/wp-json\/wp\/v2\/comments?post=302"}],"version-history":[{"count":50,"href":"https:\/\/pbraudio.org\/index.php\/wp-json\/wp\/v2\/pages\/302\/revisions"}],"predecessor-version":[{"id":790,"href":"https:\/\/pbraudio.org\/index.php\/wp-json\/wp\/v2\/pages\/302\/revisions\/790"}],"wp:attachment":[{"href":"https:\/\/pbraudio.org\/index.php\/wp-json\/wp\/v2\/media?parent=302"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}