Skip to content

In a browser

Bimble also runs in a web page, with nothing to install: guilbep.github.io/bimble.

It is the same program as the desktop version, compiled to WebAssembly. The files you open stay on your computer: the page reads them in the browser and uploads nothing.

Use it

  • Open a file with Open…, or drop it on the page. A .bimbleview file (Share for viewing) opens fastest and in the least memory.
  • ?url= opens a model from an address when the page loads, e.g. https://guilbep.github.io/bimble/?url=https://example.org/model.bimbleview (the server must allow it: CORS). ?gl=1 forces WebGL2.
  • Everything in this manual works the same way, except:
    • Save, Share for viewing…, Export PDF…, Export SVG… and Save… in the style editor download the file;
    • the history isn't available yet: Manage → History is hidden;
    • an IFC's views are saved by downloading model.ifc.bimble-views.json. To get them back, open the IFC, then open (or drop) that file: Bimble recognises it, checks that its plans are on the model's storeys, and applies its views and sheets.

Browsers

Bimble uses WebGPU where the browser has it, and WebGL2 otherwise. That covers current Chrome, Edge, Firefox and Safari. The status bar shows which one is used.

A blank page?

Check that the browser has hardware acceleration switched on. Some browsers report WebGPU while no graphics adapter backs it, on Linux in particular. Bimble detects that and uses WebGL2.

Speed

The browser version loads on one processor core, where the desktop version uses all of them. Bigger models therefore take longer to open:

Real file Desktop Browser
2.5 MB 30–39 ms 240 ms
7 MB 118–136 ms 419 ms
21 MB 398–410 ms 837 ms

Measured on a 2-core test machine with software graphics; 1 run in the browser, 3 on the desktop. A browser page can use at most 4 GB of memory. A model that needs more asks which part to show; a .bimbleview of it needs far less.

The page downloads about 5 MB the first time (compressed).

Host it yourself

Each release has bimble-*-web.zip: static files to put on any web server. WebGPU needs HTTPS (or localhost).

To build it from source:

rustup target add wasm32-unknown-unknown
cargo install wasm-bindgen-cli --version <the wasm-bindgen version in Cargo.lock>
scripts/build-web.sh                       # → web/dist/
python3 -m http.server -d web/dist 8000    # then open http://localhost:8000

scripts/build-web.sh says which wasm-bindgen version it needs. It also needs npm, to fetch the geometry kernel used for openings.