latentspace.

Loading the geometries I have

three.js features

Three.js includes the following features:

OBJLoader

The OBJ file format is a simple data-format that represents 3D geometry alone — namely, the position of each vertex, the UV position of each texture coordinate vertex, vertex normals, and the faces that make each polygon defined as a list of vertices, and texture vertices.

An OBJ file may contain vertex data, free-form curve/surface attributes, elements, free-form curve/surface body statements, connectivity between free-form surfaces, grouping and display/render attribute information. The most common elements are geometric vertices, texture coordinates, vertex normals and polygonal faces.

A 3D model of Le Corbusier's Dom-ino system is available, and it can be loaded onto the HTML canvas using OBJLoader from the three.js addons.
Dom-ino system by Le Corbusier
The camera can be controlled with the mouse.

IFCLoader

The Industry Foundation Classes (IFC) is a CAD data exchange data schema intended for description of architectural, building and construction industry data. It is an object-based data schema with a data model to facilitate interoperability in the architecture, engineering and construction (AEC) industry, and is a commonly used collaboration format in Building information modeling (BIM) based projects.
Hello ifc wall
The camera can be controlled with the mouse.



    ISO-10303-21;
    HEADER;
    FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1');
    FILE_NAME('hello_wall.ifc','2023-04-03T11:02:39',('Kianwee Chen'),('ETHZ'),'IfcOpenShell','IfcOpenShell','');
    FILE_SCHEMA(('IFC2X3'));
    ENDSEC;
    DATA;
    #1=IFCPERSON($,$,'Kianwee Chen',$,$,$,$,$);
    #2=IFCORGANIZATION($,'ETHZ',$,$,$);
    #3=IFCPERSONANDORGANIZATION(#1,#2,$);
    #4=IFCAPPLICATION(#2,'0.5','IfcOpenShell','');
    #5=IFCOWNERHISTORY(#3,#4,$,.ADDED.,$,#3,#4,1680519759.893173);
    #6=IFCDIRECTION((1.,0.,0.));
    #7=IFCDIRECTION((0.,0.,1.));
    #8=IFCCARTESIANPOINT((0.,0.,0.));
    #9=IFCAXIS2PLACEMENT3D(#8,#7,#6);
    #10=IFCDIRECTION((0.,1.,0.));
    #11=IFCGEOMETRICREPRESENTATIONCONTEXT($,'Model',3,1.E-05,#9,#10);
    #12=IFCDIMENSIONALEXPONENTS(0,0,0,0,0,0,0);
    #13=IFCSIUNIT(*,.LENGTHUNIT.,$,.METRE.);
    #14=IFCSIUNIT(*,.AREAUNIT.,$,.SQUARE_METRE.);
    #15=IFCSIUNIT(*,.VOLUMEUNIT.,$,.CUBIC_METRE.);
    #16=IFCSIUNIT(*,.PLANEANGLEUNIT.,$,.RADIAN.);
    #17=IFCMEASUREWITHUNIT(IFCPLANEANGLEMEASURE(0.017453292519943295),#16);
    #18=IFCCONVERSIONBASEDUNIT(#12,.PLANEANGLEUNIT.,'DEGREE',#17);
    #19=IFCUNITASSIGNMENT((#13,#14,#15,#18));
    #20=IFCPROJECT('0Cni$ZqWyHxOS2SCz9D1T5',#5,'Hello Wall',$,$,$,$,(#11),#19);
    #21=IFCCARTESIANPOINT((0.,0.,0.));
    #22=IFCDIRECTION((0.,0.,1.));
    #23=IFCDIRECTION((1.,0.,0.));
    #24=IFCAXIS2PLACEMENT3D(#21,#22,#23);
    #25=IFCLOCALPLACEMENT($,#24);
    #26=IFCSITE('0Co0S$qWyHxOYfSCz9D1T5',#5,'Site',$,$,#25,$,$,.ELEMENT.,$,$,$,$,$);
    #27=IFCCARTESIANPOINT((0.,0.,0.));
    #28=IFCDIRECTION((0.,0.,1.));
    #29=IFCDIRECTION((1.,0.,0.));
    #30=IFCAXIS2PLACEMENT3D(#27,#28,#29);
    #31=IFCLOCALPLACEMENT(#25,#30);
    #32=IFCBUILDING('0Co0T0qWyHxPdNSCz9D1T5',#5,'Building',$,$,#31,$,$,.ELEMENT.,$,$,$);
    #33=IFCCARTESIANPOINT((0.,0.,0.));
    #34=IFCDIRECTION((0.,0.,1.));
    #35=IFCDIRECTION((1.,0.,0.));
    #36=IFCAXIS2PLACEMENT3D(#33,#34,#35);
    #37=IFCLOCALPLACEMENT(#31,#36);
    #38=IFCBUILDINGSTOREY('0CoAITqWyHxPDJSCz9D1T5',#5,'Storey',$,$,#37,$,$,.ELEMENT.,0.);
    #39=IFCRELAGGREGATES('0CoAIUqWyHxOokSCz9D1T5',#5,'Building Container',$,#32,(#38));
    #40=IFCRELAGGREGATES('0CoAIVqWyHxQrlSCz9D1T5',#5,'Site Container',$,#26,(#32));
    #41=IFCRELAGGREGATES('0CoAIWqWyHxQR8SCz9D1T5',#5,'Project Container',$,#20,(#26));
    #42=IFCCARTESIANPOINT((0.,0.,0.));
    #43=IFCDIRECTION((0.,0.,1.));
    #44=IFCDIRECTION((1.,0.,0.));
    #45=IFCAXIS2PLACEMENT3D(#42,#43,#44);
    #46=IFCLOCALPLACEMENT(#37,#45);
    #47=IFCCARTESIANPOINT((0.,0.,0.));
    #48=IFCCARTESIANPOINT((5.,0.,0.));
    #49=IFCPOLYLINE((#47,#48));
    #50=IFCSHAPEREPRESENTATION(#11,'Axis','Curve2D',(#49));
    #51=IFCCARTESIANPOINT((0.,0.,0.));
    #52=IFCDIRECTION((0.,0.,1.));
    #53=IFCDIRECTION((1.,0.,0.));
    #54=IFCAXIS2PLACEMENT3D(#51,#52,#53);
    #55=IFCCARTESIANPOINT((0.,-0.1,0.));
    #56=IFCCARTESIANPOINT((5.,-0.1,0.));
    #57=IFCCARTESIANPOINT((5.,0.1,0.));
    #58=IFCCARTESIANPOINT((0.,0.1,0.));
    #59=IFCCARTESIANPOINT((0.,-0.1,0.));
    #60=IFCPOLYLINE((#55,#56,#57,#58,#59));
    #61=IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,$,#60);
    #62=IFCDIRECTION((0.,0.,1.));
    #63=IFCEXTRUDEDAREASOLID(#61,#54,#62,3.);
    #64=IFCSHAPEREPRESENTATION(#11,'Body','SweptSolid',(#63));
    #65=IFCPRODUCTDEFINITIONSHAPE($,$,(#50,#64));
    #66=IFCWALLSTANDARDCASE('0CoAIXqWyHxPQdSCz9D1T5',#5,'Wall','An awesome wall',$,#46,#65,$);
    #67=IFCMATERIAL('wall material');
    #68=IFCMATERIALLAYER(#67,0.2,$);
    #69=IFCMATERIALLAYERSET((#68),$);
    #70=IFCMATERIALLAYERSETUSAGE(#69,.AXIS2.,.POSITIVE.,-0.1);
    #71=IFCRELASSOCIATESMATERIAL('0CoAIYqWyHxQYBSCz9D1T5',#5,$,$,(#66),#70);
    #72=IFCPROPERTYSINGLEVALUE('Reference','Reference',IFCTEXT('Describe the Reference'),$);
    #73=IFCPROPERTYSINGLEVALUE('IsExternal','IsExternal',IFCBOOLEAN(.T.),$);
    #74=IFCPROPERTYSINGLEVALUE('ThermalTransmittance','ThermalTransmittance',IFCREAL(2.569),$);
    #75=IFCPROPERTYSINGLEVALUE('IntValue','IntValue',IFCINTEGER(2),$);
    #76=IFCPROPERTYSET('0CoAIZqWyHxRokSCz9D1T5',#5,'Pset_WallCommon',$,(#72,#73,#74,#75));
    #77=IFCRELDEFINESBYPROPERTIES('0CoAIaqWyHxQsUSCz9D1T5',#5,$,$,(#66),#76);
    #78=IFCQUANTITYLENGTH('Length','Length of the wall',$,5.);
    #79=IFCQUANTITYAREA('Area','Area of the front face',$,15.);
    #80=IFCQUANTITYVOLUME('Volume','Volume of the wall',$,3.);
    #81=IFCELEMENTQUANTITY('0CoAIbqWyHxRz6SCz9D1T5',#5,'BaseQuantities',$,$,(#78,#79,#80));
    #82=IFCRELDEFINESBYPROPERTIES('0CoAIcqWyHxRDdSCz9D1T5',#5,$,$,(#66),#81);
    #83=IFCCARTESIANPOINT((0.5,0.,1.));
    #84=IFCDIRECTION((0.,0.,1.));
    #85=IFCDIRECTION((1.,0.,0.));
    #86=IFCAXIS2PLACEMENT3D(#83,#84,#85);
    #87=IFCLOCALPLACEMENT(#46,#86);
    #88=IFCCARTESIANPOINT((0.,0.,0.));
    #89=IFCDIRECTION((0.,0.,1.));
    #90=IFCDIRECTION((1.,0.,0.));
    #91=IFCAXIS2PLACEMENT3D(#88,#89,#90);
    #92=IFCCARTESIANPOINT((0.,-0.1,0.));
    #93=IFCCARTESIANPOINT((3.,-0.1,0.));
    #94=IFCCARTESIANPOINT((3.,0.1,0.));
    #95=IFCCARTESIANPOINT((0.,0.1,0.));
    #96=IFCCARTESIANPOINT((0.,-0.1,0.));
    #97=IFCPOLYLINE((#92,#93,#94,#95,#96));
    #98=IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,$,#97);
    #99=IFCDIRECTION((0.,0.,1.));
    #100=IFCEXTRUDEDAREASOLID(#98,#91,#99,1.);
    #101=IFCSHAPEREPRESENTATION(#11,'Body','SweptSolid',(#100));
    #102=IFCPRODUCTDEFINITIONSHAPE($,$,(#101));
    #103=IFCOPENINGELEMENT('0CoAIdqWyHxOdMSCz9D1T5',#5,'Opening','An awesome opening',$,#87,#102,$);
    #104=IFCRELVOIDSELEMENT('0CoAIeqWyHxRf4SCz9D1T5',#5,$,$,#66,#103);
    #105=IFCCARTESIANPOINT((0.,0.,0.));
    #106=IFCDIRECTION((0.,0.,1.));
    #107=IFCDIRECTION((1.,0.,0.));
    #108=IFCAXIS2PLACEMENT3D(#105,#106,#107);
    #109=IFCLOCALPLACEMENT(#87,#108);
    #110=IFCCARTESIANPOINT((0.,0.,0.));
    #111=IFCDIRECTION((0.,0.,1.));
    #112=IFCDIRECTION((1.,0.,0.));
    #113=IFCAXIS2PLACEMENT3D(#110,#111,#112);
    #114=IFCCARTESIANPOINT((0.,-0.01,0.));
    #115=IFCCARTESIANPOINT((3.,-0.01,0.));
    #116=IFCCARTESIANPOINT((3.,0.01,0.));
    #117=IFCCARTESIANPOINT((0.,0.01,0.));
    #118=IFCCARTESIANPOINT((0.,-0.01,0.));
    #119=IFCPOLYLINE((#114,#115,#116,#117,#118));
    #120=IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,$,#119);
    #121=IFCDIRECTION((0.,0.,1.));
    #122=IFCEXTRUDEDAREASOLID(#120,#113,#121,1.);
    #123=IFCSHAPEREPRESENTATION(#11,'Body','SweptSolid',(#122));
    #124=IFCPRODUCTDEFINITIONSHAPE($,$,(#123));
    #125=IFCWINDOW('0CoK3_qWyHxOjFSCz9D1T5',#5,'Window','An awesome window',$,#109,#124,$,$,$);
    #126=IFCRELFILLSELEMENT('0CoK3$qWyHxQoSSCz9D1T5',#5,$,$,#103,#125);
    #127=IFCRELCONTAINEDINSPATIALSTRUCTURE('0CoK40qWyHxQCzSCz9D1T5',#5,'Building Storey Container',$,(#66,#125),#38);
    ENDSEC;
    END-ISO-10303-21;