Skip to content

Requirements

Ruben de Laat edited this page Jan 24, 2019 · 7 revisions

This version has a few specific requirements.

EcmaScript 6

  • Modules
  • Classes
  • Set and Map
  • Getter and Setter methods
  • Lexical this
  • Etcetera

For now the requirement for EcmaScript 6 is there for both the development version of BIMsurfer and for the released version of BIMsurfer.

If anyone thinks it's a good idea to make a transpiled build for for example ES5, feel free to set it up. Most browsers (Chrome and Firefox) support the full feature set already though...

WebSockets

Nothing changed here, we still use it, if you don't like it, use something else or build your own viewer/server.

WebGL 2

WebGL 2 provides a lot of features that were not available in WebGL 1, or only as an extension. Since the whole idea of supporting (and communicating about) a given version is that you know for sure that something will either work or won't, which makes extension useless, unless you provide a fallback for every single feature, which we won't;

Features of WebGL 2 that are (extensively) used:

  • Vertex Array Objects
  • Instanced Drawing
  • UNSIGNED_INT indices
  • Multiple Draw Buffers
  • GPU side buffer copy/set/get
  • Uniform buffers

TextDecoder

Used for decoding UTF-8. At time of writing (01-08-2018) this is supported by Chrome, Firefox, Opera and Safari. This class replaces a rather big chunk of code that was used in previous versions of BIMsurfer (https://github.com/opensourceBIM/BIMsurfer/blob/master/bimsurfer/lib/StringView.js).

BigInt

Update: The requirement for BigInt has been removed for now

Added to Google Chrome in version 67. We use it for Object IDs, which are 64 bit ints. This is underway in Firefox.

BIMserver JavaScript API

This is another library from the OpenSource BIM initiative. It is used to connect to a BIMserver and provides a lot of methods to make this easier. You can either include it by copying the files to your own projects, or link to a remote version.