
Company News
Socket Has Acquired Secure Annex
Socket has acquired Secure Annex to expand extension security across browsers, IDEs, and AI tools.
vim-webgl-component
Advanced tools
The VIM WebGL Component is an open-source high-performance 3D model viewer and BIM inspector that specializes in loading extremely large AEC (Architectural/Engineering/Construction) models represented as VIM files.
The VIM file format is a high-performance 3D scene format that supports rich BIM data, and can be easily extended to support other relational or non-relation data sets.
Unlike IFC the VIM format is already tessellated, and ready to render. This results in very fast load times. Unlike glTF the VIM format is faster to load, scales better, and has a consistent structure for relational BIM data.
More information on the vim format can be found here: https://github.com/vimaec/vim
Intents:
Make sure you have a recent version of NodeJS installed as Vite requires it.
// Define the new input scheme.
class MyScheme implements VIM.InputScheme {
default: VIM.DefaultInputScheme
constructor (viewer: VIM.Viewer) {
this.default = new VIM.DefaultInputScheme(viewer)
}
onMainAction (hit: VIM.InputAction): void {
console.log('Custom click message')
this.default.onMainAction(hit)
}
// Idle action is called when the mouse is idle for a certain delay
onIdleAction (hit: VIM.InputAction): void {
console.log('Idle action is disabled')
// Because we are not calling default
}
onKeyAction (key: number): boolean {
switch (key) {
case VIM.KEYS.KEY_SPACE: {
console.log('Space bar is disabled.')
// Because we are not calling default
return true
}
}
return this.default.onKeyAction(key)
}
}
createVimComponent((cmp: VimComponentRef) => {
cmp.viewer.loadVim('https://vim.azureedge.net/samples/residence.vim')
// Override the viewer input scheme.
cmp.viewer.inputs.scheme = new MyScheme(cmp.viewer)
})
createVimComponent((cmp: VimComponentRef) => {
cmp.viewer.loadVim('https://vim.azureedge.net/samples/residence.vim')
cmp.customizeContextMenu((menu) => [
// Keep existing menu
...menu,
// Append a divider
{
id: 'custom-divier',
enabled: true
},
// Append a custom button
{
action: () => console.log('Custom button'),
enabled: true,
id: 'custom-button',
keyboard: '',
label: 'Custom Button'
}
])
})
createVimComponent((cmp: VimComponentRef) => {
cmp.viewer
.loadVim('https://vim.azureedge.net/samples/residence.vim')
.then((vim) => {
// Get object using its BIM id form the loaded vim.
const objects = vim.getObjectsFromElementId(ID)
cmp.isolation.isolate(objects, 'custom')
})
})
createVimComponent((cmp: VimComponentRef) => {
cmp.viewer
.loadVim('https://vim.azureedge.net/samples/residence.vim')
.then((vim) => {
cmp.setMsg('Custom message for 3 seconds')
setTimeout(() => cmp.setMsg(undefined), 3000)
})
})
Distributed under the MIT License. See LICENSE.txt for more information.
Thanks to these great packages and more:
FAQs
A demonstration app built on top of the vim-webgl-viewer
The npm package vim-webgl-component receives a total of 42 weekly downloads. As such, vim-webgl-component popularity was classified as not popular.
We found that vim-webgl-component demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Company News
Socket has acquired Secure Annex to expand extension security across browsers, IDEs, and AI tools.

Research
/Security News
Socket is tracking cloned Open VSX extensions tied to GlassWorm, with several updated from benign-looking sleepers into malware delivery vehicles.

Product
Reachability analysis for PHP is now available in experimental, helping teams identify which vulnerabilities are actually exploitable.