<p dir="auto">Hi! I'm trying to use ThreeJS and the VRMLLoader to display vrml files generated by Catia. I just duplicated your example and tried to load my file. Console shows this message:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="TypeError: angles is undefined VRMLLoader.js:125"><pre class="notranslate"><code class="notranslate">TypeError: angles is undefined VRMLLoader.js:125
</code></pre></div>
<p dir="auto"><a href="https://gist.github.com/a5e/717b699636555de77103">here is the file</a></p>
<p dir="auto">Is it because the loader is not fully implemented or because of the exported file ?</p>
<p dir="auto">EDIT: I also have the following notices and I'm not sure if it is due to browsers not supporting PVRTC or 3js implementation ?</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="&quot;THREE.WebGLRenderer: PVRTC compressed textures not supported.&quot;
&quot;THREE.WebGLRenderer: min max blend equations not supported.&quot;"><pre class="notranslate"><code class="notranslate">"THREE.WebGLRenderer: PVRTC compressed textures not supported."
"THREE.WebGLRenderer: min max blend equations not supported."
</code></pre></div>
<p dir="auto"></p><div class="Box Box--condensed my-2">
  <div class="Box-header f6">
    <p class="mb-0 text-bold">
      <a href="https://github.com/mrdoob/three.js/blob/97cab20e90ab6188b9bc10af13d5be406f0b8854/examples/js/loaders/TDSLoader.js#L53-L60">three.js/examples/js/loaders/TDSLoader.js</a>
    </p>
    <p class="mb-0 color-fg-muted">
        Lines 53 to 60
      in
      <a data-pjax="true" class="commit-tease-sha" href="/mrdoob/three.js/commit/97cab20e90ab6188b9bc10af13d5be406f0b8854">97cab20</a>
    </p>
  </div>
  <div itemprop="text" class="Box-body p-0 blob-wrapper blob-wrapper-embedded data">
    <table class="highlight tab-size mb-0 js-file-line-container" data-tab-size="8" data-paste-markdown-skip="">

        <tbody><tr class="border-0">
          <td id="L53" class="blob-num border-0 px-3 py-0 color-bg-default" data-line-number="53"></td>
          <td id="LC53" class="blob-code border-0 px-3 py-0 color-bg-default blob-code-inner js-file-line"> <span class="pl-k">var</span> <span class="pl-s1">loader</span> <span class="pl-c1">=</span> <span class="pl-k">new</span> <span class="pl-c1">THREE</span><span class="pl-kos">.</span><span class="pl-c1">FileLoader</span><span class="pl-kos">(</span> <span class="pl-smi">this</span><span class="pl-kos">.</span><span class="pl-c1">manager</span> <span class="pl-kos">)</span><span class="pl-kos">;</span> </td>
        </tr>

        <tr class="border-0">
          <td id="L54" class="blob-num border-0 px-3 py-0 color-bg-default" data-line-number="54"></td>
          <td id="LC54" class="blob-code border-0 px-3 py-0 color-bg-default blob-code-inner js-file-line">  </td>
        </tr>

        <tr class="border-0">
          <td id="L55" class="blob-num border-0 px-3 py-0 color-bg-default" data-line-number="55"></td>
          <td id="LC55" class="blob-code border-0 px-3 py-0 color-bg-default blob-code-inner js-file-line"> <span class="pl-s1">loader</span><span class="pl-kos">.</span><span class="pl-en">setResponseType</span><span class="pl-kos">(</span> <span class="pl-s">'arraybuffer'</span> <span class="pl-kos">)</span><span class="pl-kos">;</span> </td>
        </tr>

        <tr class="border-0">
          <td id="L56" class="blob-num border-0 px-3 py-0 color-bg-default" data-line-number="56"></td>
          <td id="LC56" class="blob-code border-0 px-3 py-0 color-bg-default blob-code-inner js-file-line">  </td>
        </tr>

        <tr class="border-0">
          <td id="L57" class="blob-num border-0 px-3 py-0 color-bg-default" data-line-number="57"></td>
          <td id="LC57" class="blob-code border-0 px-3 py-0 color-bg-default blob-code-inner js-file-line"> <span class="pl-s1">loader</span><span class="pl-kos">.</span><span class="pl-en">setPath</span><span class="pl-kos">(</span> <span class="pl-s1">path</span> <span class="pl-kos">)</span><span class="pl-kos">;</span> </td>
        </tr>

        <tr class="border-0">
          <td id="L58" class="blob-num border-0 px-3 py-0 color-bg-default" data-line-number="58"></td>
          <td id="LC58" class="blob-code border-0 px-3 py-0 color-bg-default blob-code-inner js-file-line">  </td>
        </tr>

        <tr class="border-0">
          <td id="L59" class="blob-num border-0 px-3 py-0 color-bg-default" data-line-number="59"></td>
          <td id="LC59" class="blob-code border-0 px-3 py-0 color-bg-default blob-code-inner js-file-line"> <span class="pl-s1">loader</span><span class="pl-kos">.</span><span class="pl-en">load</span><span class="pl-kos">(</span> <span class="pl-s1">url</span><span class="pl-kos">,</span> <span class="pl-k">function</span> <span class="pl-kos">(</span> <span class="pl-s1">data</span> <span class="pl-kos">)</span> <span class="pl-kos">{</span> </td>
        </tr>

        <tr class="border-0">
          <td id="L60" class="blob-num border-0 px-3 py-0 color-bg-default" data-line-number="60"></td>
          <td id="LC60" class="blob-code border-0 px-3 py-0 color-bg-default blob-code-inner js-file-line">  </td>
        </tr>
    </tbody></table>
  </div>
</div>
<p></p>
<p dir="auto"><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/cnspaha/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/cnspaha">@cnspaha</a> I don't think you should <code class="notranslate">loader.setPath( path );</code> at L57, it result in the loader duplicating the base path when trying to load the mesh file.</p>
<p dir="auto">(i.e. loading 'file:///some/path/mesh.3ds' result in the loader trying to load 'file:///some/path/file:///some/path/mesh.3ds' )</p>