Ing. (MSc) civil engineering · independent developer
WebAssembly · real-time 3D · numerics

Open for new projects

Hard things, in a browser tab.

Jan Voříšek
Jan Voříšek
Prague, CZ

I'm Jan. I prototype the parts of a product that sound impossible on the web: native engines compiled to WebAssembly, real-time 3D, and heavy numerical code.

Start a project→

§ 01 — Why call me

Most teams park the hard feature in next quarter's roadmap. I'm the person you call to find out, in weeks, whether it can be built, and to build the version that proves it.

§ 02 — Services

What I do

  1. 01

    Rapid prototypes

    Idea to working software in weeks, so you can find out whether it works before you staff a team for it.

    ↳ shipped: Elementarium and Edubeam, each taken from a first prototype to a product people use.

    Discovery · Spikes · Demos

  2. 02

    Native code in the browser

    Port C++ engines and numerical libraries to WebAssembly, including multi-threaded builds, workers and memory budgets.

    ↳ shipped: A C++ FEM solver shipped as single- and multi-threaded WASM with COOP/COEP isolation.

    WebAssembly · Emscripten · C++ · Threads

  3. 03

    Real-time 3D

    Viewports, configurators and engineering viewers that stay smooth with thousands of objects. Custom shaders where they pay off.

    ↳ shipped: Elementarium renders whole structures on TresJS with instancing and custom result shaders; a 3D interior design app for one of the largest furniture makers.

    Three.js · TresJS · GLSL · WebGL

  4. 04

    Engineering & scientific software

    Turn equations into tools people can use: solvers, geometry kernels, result post-processing and calculation reports.

    ↳ shipped: MITC4 shells, modal and buckling analysis, Eurocode/AISC checks in Elementarium; ts-fem, my TypeScript FEM library, behind Edubeam.

    FEM · Numerics · Geometry · Eigen

  5. 05

    Ambitious web apps

    Offline-capable, collaborative, installable. The parts most teams put off until v3.

    ↳ shipped: Elementarium syncs models live over Yjs/WebRTC, persists to IndexedDB and installs as a PWA.

    Vue / Nuxt · TypeScript · CRDTs · PWA

§ 03 — Selected work

Shipped

W/01 · Elementarium · steel hall examplestudio.elementarium.app · solved in 75 ms
Steel hall example in Elementarium: loaded model on the left, total displacement on the right

Elementarium

Structural analysis that opens like a web page. I built it end to end, from the architecture to production: the C++ finite element engine in WebAssembly, the 3D editor engineers model in, and the product around them.

Role
Founder · built end to end
Engine
C++ → WebAssembly, single & multi-threaded
Elements
MITC4 shells, 3D beams
Analyses
Static · modal · buckling · 2nd order
Eigen
Direct · Krylov · subspace
Codes
EN 1993-1-1 · AISC 360
Sync
Yjs over WebRTC
Illustrative 3D room planner: catalogue, 3D room view with a selected sofa, properties panel
W/02 · illustrative render · not the client's productunder NDA

W/02 · Client work · confidential

Interior designer

A proprietary 3D interior design app for one of the world's largest furniture makers. The real product is under NDA. The image is an illustrative render I built in Three.js to show the kind of planner it is; screenshots will follow once they're cleared.

W/03 · Open source · ★ 53

Edubeam

The open-source go-to for learning and teaching structural mechanics.

Draw a beam, frame or truss and see normal forces, shear, bending moments and the deflected shape update as you edit. Free, no account, in any browser.

  • For teachershand out an exercise as a single link
  • For studentscheck hand calculations instantly
  • Anywhereworks offline · docs in 11 languages
  • OpenGPL-3.0, on GitHub
Edubeam: a portal frame with its bending moment diagram

edubeam.app · portal frame, bending moment

Hypar shell mode shape solved in the browser

W/04 · Prototype · this page

Live modal analysis

The background of this site: a WASM finite element solve on your machine, built in an afternoon. The Lab opens it up.

→

§ 04 — Engagement

Weeks, not quarters

  1. Callday 1

    We pin down the one question that decides whether the idea is worth building, and what a convincing answer looks like.

  2. Prototype sprint1–4 weeks

    One to four weeks of building. You get a link to working software at least once a week, not slides.

  3. Handoverlast day

    Clean code, a short write-up of what we learned, and an honest recommendation: build it, change it, or drop it.

Good fits: deep-tech startups validating a product · engineering and CAD companies moving desktop tools to the web · teams that need a hard feature de-risked before they commit to it.

Jan Voříšek at his desk
FIG. — Jan, Prague

§ 05 — About

Engineer first

I'm a structural engineer by training (Ing., MSc) and a software developer by trade. I build the software my own field was missing: finite element engines that run in a browser tab, and the 3D tools engineers use to drive them.

That background is the useful part for clients. I can read the maths in a spec, make it fast, and still ship the interface around it. I run Elementarium Labs and take on a small number of outside projects.

15+
years building software, from structural engineering tools to client products
30+
prototypes and products shipped, for clients and my own
50k+
students and engineers who have learned with Edubeam
74 ms
to solve a 3D steel hall in Elementarium, inside a browser tab
Training
Ing. (MSc), civil engineering, structural mechanics
Elements
MITC4 shells with drilling DOFs, 3D beams, trusses
Analyses
Static, modal, linear buckling, second-order
Design codes
EN 1993-1-1 §6.2, AISC 360, EN 1990 / ASCE 7 combinations
Client work
3D interior design app for one of the largest furniture makers (NDA)
Stack
C++ · Eigen · Emscripten · TypeScript · Vue / Nuxt · Three.js / TresJS · GLSL
Based
Prague · CET

§ 06 — Contact

Have something hard to build? Tell me what it is and what's in the way.

jan@vorisek.me

Open for new projects · Prague, CET