Show HN: LÖVR – VR framework for Lua
I&#x27;ve kind of noticed something recently. Game developers use the term &quot;framework&quot; differently than web developers. When a web developer says &quot;framework&quot;, he or she usually means a fully-encompassing system that tries to take care of all of your needs.<p>In game development, a fully-encompassed system would be something like Unity or Unreal and people usually call them &quot;engines&quot;.<p>This is a little more comparable to a library like Three.js. I&#x27;m not sure I&#x27;d call Three.js a framework, either. It&#x27;s got lot of tools, but it doesn&#x27;t try to take care of absolutely everything. Three.js, for example, doesn&#x27;t have physics built in. LOEVR does have physics, but there doesn&#x27;t seem to be a spring type in the documentation. There is this DistanceJoint thing:<p><pre><code>  &gt; http:&#x2F;&#x2F;lovr.org&#x2F;docs&#x2F;lovr.physics.newDistanceJoint
  &gt; A distance joint tries to keep the two colliders a fixed distance apart.
</code></pre>
But there aren&#x27;t any spring force parameters, so I don&#x27;t think that&#x27;s it. It&#x27;s not clear what &quot;try&quot; means here.<p>Checking up on some other major differentiating factors between young projects and projects that have been used by a lot of people:<p><pre><code>  &gt; http:&#x2F;&#x2F;lovr.org&#x2F;docs&#x2F;lovr.graphics.newModel
  &gt; Creates a new Model from a file. Most 3D file formats are supported.
</code></pre>
It would be nice to have a list of exactly <i>which</i> file formats are supported, and have it available on this particular page. There are a lot of different formats. I&#x27;m not sure I can trust that &quot;most&quot; of them are supported.<p>For example, the supported audio formats are enumerated completely:<p><pre><code>  &gt; http:&#x2F;&#x2F;lovr.org&#x2F;docs&#x2F;lovr.audio.newSource
  &gt; Creates a new Source from an ogg file.
</code></pre>
Thought it&#x27;s kind of annoying that only OGG is supported. If you&#x27;re really supporting &quot;most&quot; 3D model formats, the majority of them are proprietary formats, so they can&#x27;t claim some sort of open-source ideology driving the decision to not support MP3.<p>There are no built-in materials or lights, so looks like you&#x27;ll be on your own writing those shaders. Three.js has its own Physically-Based Rendering shaders that have been in the wild for over two years now. Who knows, maybe you could copy them over?<p>There&#x27;s no built-in support for animations. This also ties back into the model format support. Some formats like FBX, Collada, and glTF support skinned mesh animations. That&#x27;s super important. There&#x27;s also no timeline system, so you&#x27;re on your own for synchronizing actions and animations.<p>There&#x27;s no entity&#x2F;component system. That&#x27;s not too hard to roll on your own, but it&#x27;s such a common thing in game development these days that it&#x27;s odd to see it missing. There is an event system, but the documentation makes it sound like you&#x27;re not intended to use it, it&#x27;s internal to the library.<p>I don&#x27;t know. I&#x27;ve spent the last 3 years building my own VR environment on top of Three.js. The stuff missing here would make my life a lot harder. The stuff that <i>is</i>, like controller and headset pose, spatialized audio, wouldn&#x27;t make things significantly easier, because the respective APIs for working with them are much more straight-forward than graphics.