All Projects → baues → building-editor

baues / building-editor

Licence: MIT license
3D model editor for building/architecture

Programming Languages

typescript
32286 projects

Projects that are alternatives of or similar to building-editor

Lume
Create CSS3D/WebGL applications declaratively with HTML. Give regular DOM elements shadow and lighting.
Stars: ✭ 445 (+1754.17%)
Mutual labels:  threejs, 3d-models
PolyDraw
✳️ PTSource PolyDraw is a free 3D polygonal modeller for Windows x86 and x64, for creating or modifying 3D objects using a mesh of 3D points and parametric NURBS Curves .Exports and imports to over 40 formats including WebVR and 3D Printing.
Stars: ✭ 17 (-29.17%)
Mutual labels:  threejs, 3d-models
voxelizer
👾 Voxelization of 3D models
Stars: ✭ 32 (+33.33%)
Mutual labels:  threejs, 3d-models
Node Occ
build BREP Solids with OpenCascade and NodeJS - 3D Modeling
Stars: ✭ 202 (+741.67%)
Mutual labels:  threejs, 3d-models
3dio Js
JavaScript toolkit for interior apps
Stars: ✭ 255 (+962.5%)
Mutual labels:  threejs, bim
Ifc.js
Ifc viewer for client applications.
Stars: ✭ 211 (+779.17%)
Mutual labels:  threejs, bim
ThreeNetwork
Network sync library for Three.js
Stars: ✭ 64 (+166.67%)
Mutual labels:  threejs
TouchControls
This is a three.js controller which supports touch events and hit-testing.
Stars: ✭ 43 (+79.17%)
Mutual labels:  threejs
Expo-Nitro-Roll
A cross-platform video game built with Expo and three.js!
Stars: ✭ 16 (-33.33%)
Mutual labels:  threejs
spot-the-bot
A cooperative WebVR game by Hook Studios. Checkout other WebVR experiments at https://webvrexperiments.com
Stars: ✭ 17 (-29.17%)
Mutual labels:  threejs
three-render-objects
Easy way to render ThreeJS objects with built-in interaction defaults
Stars: ✭ 33 (+37.5%)
Mutual labels:  threejs
three-stdlib
📚 Stand-alone library of threejs examples designed to run without transpilation in node & browser
Stars: ✭ 380 (+1483.33%)
Mutual labels:  threejs
bf-3
my personal site, bf.wtf version 3
Stars: ✭ 58 (+141.67%)
Mutual labels:  threejs
AutoSweep
The implementation for the AutoSweep (TVCG 2018)
Stars: ✭ 47 (+95.83%)
Mutual labels:  3d-models
angular-three-examples
Angular5 + three.js + Three.js examples/js (ColladaLoader and OrbitControls)
Stars: ✭ 69 (+187.5%)
Mutual labels:  threejs
gl-bench
⏱ WebGL performance monitor with CPU/GPU load.
Stars: ✭ 146 (+508.33%)
Mutual labels:  threejs
EduSmart
It utilizes 3D, Augmented reality to give real-life simulations or feels of various models and make the learning process more impactful and fascinating. With an interactive live feature, students can ask the teacher their doubts instantly and also discuss.
Stars: ✭ 23 (-4.17%)
Mutual labels:  threejs
ARFaceFilter
Javascript/WebGL lightweight face tracking library designed for augmented reality webcam filters. Features : multiple faces detection, rotation, mouth opening. Various integration examples are provided (Three.js, Babylon.js, FaceSwap, Canvas2D, CSS3D...).
Stars: ✭ 72 (+200%)
Mutual labels:  threejs
zeo
Multiplayer WebVR worlds made out of npm modules.
Stars: ✭ 47 (+95.83%)
Mutual labels:  threejs
Manim.three.js
A web compatible html5 canvas based mathematical rendering engine like the manim by 3b1b
Stars: ✭ 14 (-41.67%)
Mutual labels:  threejs

building-editor

テスト

npm version

The goal of this project is to provide base implementation of web 3D editor for building/architecture which can be used easily. The codes are based on three.js editor fork, as we respect the great work of three.js.

Note: This project is under development. Please remember that there would be breaking changes. Or you can join us to make this project better for users.

Installation

npm install building-editor

Usage

Sample code

import { Editor } from 'building-editor';

const editor = new Editor();
document.body.appendChild(editor.renderer.domElement);

const init = () => {
  const width = window.innerWidth;
  const height = window.innerHeight;
  editor.renderer.setPixelRatio(window.devicePixelRatio);
  editor.renderer.setSize(width, height);
  editor.render();
}

init();

API

Editor

The main API of this library to create web 3D editor. This includes properties and actions. Note that you need to implement user interactions such as selected, hovered etc., using addEventListener since Editor itself does not provide it.

Constructor

Editor(config:Config,settings:Settings).

This creates a new Editor.

config - configuration data to specify cotrolability of editor (e.g. undo/redo, delete etc).
settings - setting data which summarize view setting such as renderer, camera, scene etc.

Properties

.config:Config.

configuration data to specify cotrolability of editor (e.g. undo/redo, delete etc).

.settings:Settings.

setting data which summarize view setting such as renderer, camera, scene etc.

.editorControls:EditorControls.

extension of THREE.EventDispatcher

.renderer:THREE.WebGLRenderer.
.DEFAULT_CAMERA:THREE.Camera.
.history:History.

Manage undo/redo history

.exporter:Exporter.

Utility class to export geometry in different format (e.g. obj, stl, dae etc)

.loader:Loader.

Utility class to load geometry file into editor

.camera:THREE.Camera.
.scene:THREE.Scene.
.sceneHelpers:THREE.Scene.
.objects:THREE.Object3D[].
.INITIAL_OBJECTS:THREE.Object3D[].
.INITIAL_HELPERS:THREE.Object3D[].
.geometries:{[index:string]:THREE.BufferGeometry}
.materials:{[index:string]:THREE.Material}
.textures:{[index:string]:THREE.Texture}
.materialsRefCounter: Map<THREE.Material,number>
aminations: {[index:string]:THREE.AnimationClip[]}
mixer: THREE.AnimationMixer
selected: THREE.Object3D | null

selected object in editor

hovered: THREE.Object3D | null

hovered object in editor

helpers: {[index:string]: Helper}

summarize following three helpers

  • THREE.CameraHelper
  • THREE.PointLightHelper
  • THREE.DirectionalLightHelper
  • THREE.SpotLightHelper
  • THREE.HemisphereLightHelper
  • THREE.SkeltonHelper
cameras: {[index:string]: THREE.Camera}
viewportCameras:THREE.Camera
orbitControls: THREE.OrbitControls
viewCubeControls:
gridHelper: THREE.GridHelper
axesHelper: THREE.AxesHelper
planeHelper: THREE.PlaneHelper
stencilPlane:
box:THREE.box3
selectionBox:THREE.BoxHelper
transformControls:TransformControls
raycaster:THREE.Raycaster
mouse:THREE.Vector2
contextMenu:
event:Event

Methods.

setConfig(config):void
objectChanged(object):void
showGridChanged(showGrid:boolean):void
render():void
setScene(scene):void
changeTransformModel(mode):void
addObject(object,parent,index):void
addObjectAsHelper(object):void
moveObject(object,parent,before):void
nameObject(object,name):void
removeObject(object):void
addGeometry(geometry):void
setGeometryName(geometry,name):void
addMaterial(material):void
addMaterialToRefCounter(material):void
removeMaterial(material):void
removeMaterialFromRefCounter(material):void
getMaterialById(id):THREE.Material | undefined
setMaterialName(material,name):void
addTexture(texture):void
addAnimation(object,animations):void
addCamera(camera):void
removeCamera(camera):void
addHelper(object):void
removeHelper(object):void
updateGridHelper(gridHelper):void
updateAxesHelper(axesHelper):void
updatePlaneHelper(planeHelper):void
clip(enabled):void
setDefaultCamera():void
setViewportCamera(uuid):void
select(object|null):void
selectNyId(id):void
selectByUuid(uuid):void
setHovered(object|null):void
focus(object):void
focusById(id):void
clear():void
fromJSON(json):void
toJSON():EditorJson
objectByUuid(uuid):THREE.Object3d|undefined
execute(cmd):void
undo():void
redo():void
Config(config?:BuildingEditorConfig).
BuildingEditorConfig.

Editor has many properties and methods. Please check Editor class to find them. The documents will be prepared later.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].