Я сомневаюсь, что возможно портировать код на JavaScript и не использовать объекты, когда исходный код C ++ является объектно-ориентированным.
Если вы хотите «изменить» код Bullet перед переносом, я думаю, вам придется переписать его, чтобы он использовал что-то, что имеет преимущество в JavaScript: типизированные массивы. Я думаю, вам придется переписать большую часть кода, чтобы получить его таким образом. И в этом случае было бы удобнее написать JavaScript напрямую.
У меня нет хороших рекомендаций для вас, кроме ammo.js. Однако cannon.js - это недавно запущенный проект, который может удовлетворить ваши потребности, когда его код станет стабильным. Возможно, вы хотели бы внести свой вклад в это?
Другой путь может быть FireBreath . Это фреймворк для разработки плагинов для браузера. Это может помочь вам сделать нативные функции JavaScript. Если Bullet скомпилирован в такой плагин, и привязки сделаны к JavaScript, то у вас есть готовый к использованию физический движок C ++ в JavaScript. Конечно, конечный пользователь должен сначала загрузить плагин.