โšก New

WebGL Developer

SrinSoft Inc

MumbaiFull-timeMid LevelOn-site

Job Description

Senior Three.js / WebGL Developer โ€” AEC 3D Model Viewer About the Role We are building a high-performance, browser-based 3D model viewer purpose-built for the Architecture, Engineering, and Construction (AEC) industry. You will be a core contributor responsible for architecting and shipping this viewer from the ground up as an embeddable, extensible component within our web application. This is a deeply technical role that sits at the intersection of 3D graphics programming, AEC domain knowledge, and modern frontend engineering.

What You'll Build A web-based 3D viewer capable of loading, rendering, navigating, and interrogating large-scale BIM/CAD models (IFC, glTF, OBJ, point clouds) directly in the browser. Think section planes, object isolation, property inspection, measurement tools, annotations, and real-time collaboration overlays โ€” all running smoothly on commodity hardware. Key Responsibilities Architect and develop a performant Three.js / WebGL-based 3D rendering engine optimized for large AEC datasets (buildings, infrastructure, MEP systems) containing millions of triangles.

Implement efficient geometry streaming and progressive loading so users can interact with models before they are fully downloaded. Build a scene graph and spatial indexing system (BVH / octree) that supports fast raycasting, object picking, frustum culling, and visibility queries on complex BIM hierarchies. Develop core viewer interactions including orbit/pan/zoom camera controls, first-person walkthrough, fit-to-object, section planes (single and box), exploded views, and transparency/X-ray modes.

Expose a BIM property panel that maps 3D objects to their IFC metadata (type, classification, parameters, materials, spatial hierarchy) and supports search and filtering by property values. Implement measurement and annotation tools โ€” point-to-point distance, area, angle, and persistent 3D annotations tied to model elements. Create a layer/category management system allowing users to toggle visibility, isolate, and color-code elements by discipline (Architectural, Structural, MEP), storey, category, or custom filter.

Build a diffing/comparison mode that visually highlights changes between two model versions (added, removed, modified elements). Integrate real-time collaboration features โ€” shared camera states, cursor presence, and comment pins anchored to 3D coordinates โ€” using WebSockets or a similar transport. Design the viewer as an embeddable, framework-agnostic module with a clean public API and event system so product teams can extend it (custom overlays, data bindings, plugin hooks).

Ensure accessibility and cross-browser/cross-device compatibility, including acceptable performance on tablets and mid-range laptops. Write unit and integration tests for core rendering logic, parser outputs, and interaction handlers. Set up visual regression testing for rendering fidelity.

Profile and optimize GPU memory usage, draw calls, shader complexity, and main-thread workload. Use Web Workers and OffscreenCanvas where beneficial. Collaborate with backend engineers on model conversion pipelines, tiling/streaming servers, and storage strategies for large federated models.

Document the viewer architecture, API surface, and contribution guidelines for internal and potentially external developers. Required Qualifications 4+ years of professional experience with Three.js or raw WebGL/WebGPU in production applications. Strong understanding of real-time 3D rendering fundamentals โ€” transformation matrices, shaders (GLSL), PBR materials, shadow mapping, post-processing pipelines, and GPU profiling.

Experience working with AEC/BIM data formats, especially IFC (familiarity with the IFC schema, IfcOpenShell, or web-ifc is highly valued). Proficiency in TypeScript and at least one modern frontend framework (React, Vue, or Svelte) for the UI layer surrounding the 3D canvas. Experience with geometry processing โ€” mesh decimation, instancing, batched geometry, level-of-detail generation, and large-scene optimization techniques.

Familiarity with spatial data structures (octrees, BVH, k-d trees) and computational geometry basics. Comfortable with Web Workers, SharedArrayBuffer, WASM modules, and other browser performance APIs. Track record of building developer-facing APIs or SDKs with clear abstractions and versioning.

Nice to Have Experience with WebGPU and the transition path from WebGL. Background in CAD kernel concepts (BREP, NURBS, tessellation). Contributions to open-source 3D or AEC tooling.

Posted Today

Related Jobs

Related Searches

Apply Now