3D software developer at Creoox AG
AEC Hackathon, Wroclaw, 5 October, 2024
of
in
Tracing the Path of the xeokit SDK
JavaScript in the 90s / 2000s
xeokit.io
2000s: Learning Graphics Programming
xeokit.io
2006: Created SceneJS
SceneJS drew 3D wire frames using DIVs
var scene = SceneJS.createScene({
nodes:[{
type:"material",
color: { r: 1, g: 1, b: 1 },
nodes:[{
type: "rotate",
id: "myRotate",
y: 1.0, angle: 0,
nodes: [{
type:"geometry/box"
}]
}]
}]
});
2006: SceneJS
var scene = SceneJS.createScene({
nodes:[{
type:"material",
color: { r: .3, g: .3, b: 1 },
nodes:[{
type: "rotate",
id: "myRotate",
y: 1.0,
angle: 0,
nodes: [{
type:"geometry/teapot"
}]
}]
}]
});
scene.getNode("myRotate",
function(myRotate) {
var angle = 0;
scene.on("tick",
function() {
myRotate.setAngle
(angle += .5);
});
});
SceneJS had a declarative scene graph definition inspired by VRML and other Human-readible formats
2006: Mozilla's Canvas 3D Experiments
xeokit.io
2007: "Is that actually running in the browser?"
xeokit.io
2009: We need to move our product into the browser
2010: BioDigital Human Migrates to SceneJS
2010: BioDigital Human Built on SceneJS
2010: BioDigital Requirement #1 - Load Models Quickly
xeokit.io
2010: BioDigital Requirement #2 - Navigate Models Fluidly
2010: More BioDigital SceneJS Requirements
2011: MicroSoft Difficulties
xeokit.io
2015: SceneJS in BIMSurfer
2015: SceneJS Learnings
However:
xeokit.io
2015: Created xeogl
var mesh = new xeogl.Mesh({
geometry: new xeogl.TeapotGeometry(),
material: new xeogl.MetallicMaterial({
baseColor: [1.0, 1.0, 1.0]
})
});
2017: Built BIMData Viewer V1 on xeogl
2019: Created xeokit
2024: xeokit SDK
xeokit.io
2024: xeokit Differentiators (1)
xeokit
Others (AutoDesk etc)
Real world 3D coordinate system
2024: xeokit Differentiators (2)
XKT: native compressed binary format
2024: xeokit Differentiators (3)
Cursor snap-to-primitive
2024: xeokit Differentiators (4)
Integrated semantic data model
2024: xeokit Differentiators (5)
View federated models
Thanks!