Skip to content

salpbes/GomeraX

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

113 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

GomeraX - Experimental IFC Viewer with AI-Powered BIM Assistant

GOMERA is an experimental, modular IFC file viewer built with Open BIM Components (OBC).

GomeraX Interface
GomeraX IFC Viewer with AI-Powered BIM Assistant

๐ŸŽฏ Features

  • ๐Ÿ“‚ IFC File Loading: Load and view Industry Foundation Classes (IFC) files
  • โšก Fragments Support: Fast loading with pre-converted Fragments format
  • ๐ŸŽจ Cast Shadows Rendering: Professional cast shadows with ambient occlusion
  • ๐Ÿ“Š Performance Monitoring: Real-time FPS, memory usage, and render time stats
  • ๐Ÿ’พ Export Functionality: Export loaded models and data as Fragments (.frag), glTF (.gltf), GLB (.glb), USDZ (.usdz), Screenshot (PNG), and Properties (JSON)
  • ๐Ÿ“ฑ Responsive Design: Works on desktop and mobile devices
  • ๐Ÿ—๏ธ Modular Architecture: Clean, maintainable code structure
  • ๐ŸŒ Modern UI: Bottom floating toolbar with professional Font Awesome icons
  • ๐Ÿ”„ Automatic Alignment: Models align to site coordinates automatically
  • ๐Ÿง  Smart Coordinate System: Automatic far-origin model detection and handling
  • โš ๏ธ Visual Warnings: Professional alerts for far-origin models (>100km from origin)
  • ๐Ÿ›ก๏ธ Alignment Protection: Prevents mixing incompatible coordinate systems
  • ๐Ÿ“‹ Model Information: Hover badge displays model names and UUIDs
  • ๐ŸŽจ Professional Design: Purple gradient buttons with glassmorphic styling
  • ๐ŸŽญ Expandable Menus: Organized actions in Load, View, Info, and Clipper groups
  • ๐Ÿงญ ViewCube Navigation: Interactive 3D cube for quick camera orientation
  • โœ‚๏ธ Advanced Sectioning: Cut through models with preset planes or custom cuts
  • ๐Ÿ”„ Section Flip: View both sides of any section plane
  • ๐Ÿ—‚๏ธ Properties Panel: IFC tree view and element property inspection
  • ๐Ÿ‘๏ธ Space Visibility: Toggle IfcSpace elements on/off

GomeraX Interface
First-Person Walk Mode with Gravity

  • ๐Ÿšถ First-Person Walk Mode with Gravity: FPS-style navigation with collision detection and gravity
  • ๐Ÿ“ Measurement Tools: Length, Area, and Volume measurements with perpendicular guides
  • ๐ŸŽฏ Model Alignment Tool: Drag-and-drop panel for precise multi-model positioning with AEC-standard coordinates
  • ๐Ÿข Floor Plan Views: Interactive 2D floor plan views with pan/zoom navigation
  • ๐Ÿ“Š Property Table: Excel-like interactive table for bulk property inspection and filtering

Element Clustering
Element Clustering - Spatial organization of building elements

  • ๐Ÿงฉ Element Clustering: Spatial organization tool that groups building elements by IFC category with:
    • Automatic Grouping: Physically separates elements by type (walls, doors, windows, etc.)
    • Visual Bounding Boxes: Each cluster displays with labeled bounds for easy identification
    • Color Coding: Clusters are color-coded for quick visual distinction
    • Interactive Selection: Click clusters to inspect grouped elements
    • One-Click Reset: Return all elements to original positions instantly

AI-Powered BIM Assistant
AI Assistant - Natural language commands for BIM model interaction

  • ๐Ÿค– AI-Powered BIM Assistant: Natural language interface for model interaction with:
    • On-Device LLM: Privacy-first AI running entirely in-browser via WebLLM Qwen3
    • Natural Language Commands: Select, hide, isolate elements using natural language ("show me all doors")
    • Smart Context: Understands pronouns and follow-ups ("hide them", "zoom to those")
    • Element Queries: Count and analyze model elements ("how many windows are there?")
    • Camera Control: Navigate via voice ("show front view", "zoom to columns")
    • Storey Navigation: Jump to floors by name ("go to Level 2")
    • IFC Type Recognition: Automatically maps natural language to IFC types
    • Real-time Stats: GPU usage, decode speed, and token metrics display

AI-Powered BIM Assistant
AI Assistant - Natural language commands for BIM model interaction

  • ๐ŸŽฎ Experimental WebGPU Mode: Next-generation rendering for massive models with:
    • Instant Highlighting: Zero-latency selection using GPU-shared buffers
    • LOD (Level of Detail): Automatic geometry simplification for distant objects
    • Atmospheric Fog: Linear and exponential fog for enhanced depth perception
    • Professional Outlines: Clean selection highlighting using multi-pass rendering
    • GPU Color Picking: Instant element identification in merged geometries
    • Chunked Scene Rebuilding: Smooth isolation/un-isolation without UI freezing
    • Adaptive Quality: Automatic performance scaling based on hardware
    • Shadow Optimizations: High-performance shadows with "ghost mode" support
    • Frustum Culling: Optimized edge rendering for complex geometries
    • Performance Stats Overlay: Detailed hardware, memory, and rendering metrics

Model Dashboard and Data Slicer
Model Dashboard and Data Slicer for BIM analytics and filtering

  • ๐Ÿ“ˆ Model Dashboard: Power BI-style analytics panel with:
    • Element Statistics: Total counts by IFC category (walls, doors, windows, etc.)
    • Interactive Charts: Pie charts and bar graphs for visual data exploration
    • Storey Breakdown: Element distribution across building levels
    • Volume Analytics: Material quantities and space calculations
    • JSON Export: Download statistics for external reporting
  • ๐Ÿ”ช Data Slicer: Interactive filtering tool for model exploration with:
    • Multi-Property Filtering: Filter by storey, category, material, or any IFC property
    • Visual Feedback: Real-time 3D highlighting of filtered elements
    • Cross-Filtering: Multiple slicers work together for complex queries
    • Split-Screen Mode: Side-by-side slicer panel with 3D view
    • Export Filtered Data: Download filtered results as JSON

๐Ÿš€ Quick Start

Prerequisites

  • Node.js (v18 or higher recommended)
  • npm, yarn, or pnpm

Installation

  1. Install dependencies:
npm install
  1. Start the development server:
npm run dev
  1. Open your browser and navigate to http://localhost:3000

๐Ÿ‘จโ€๐Ÿ’ป Testing Guide (For Non-Developers)

๐Ÿ“‹ No coding experience required! This guide will walk you through testing GOMERA X on your own computer in about 5 minutes.


๐Ÿ“ฆ Step 1: Install Node.js (One-Time Setup)

Node.js is a free tool that runs the viewer. You only need to install it once.

  1. Go to nodejs.org
  2. Click the big green button labeled "LTS" (on the left side)
  3. Run the downloaded installer and click Next through all steps
  4. โœ… Done! You now have Node.js installed

๐Ÿ’ก Tip: To verify installation, open Terminal/Command Prompt and type node --version. You should see a version number like v20.x.x


๐Ÿ“ฅ Step 2: Download GOMERA X

  1. On this GitHub page, click the green < > Code button (near the top)
  2. Select "Download ZIP" from the dropdown menu
  3. Once downloaded, extract/unzip the folder:
    • Windows: Right-click the ZIP โ†’ Extract All...
    • Mac: Double-click the ZIP file
  4. Move the extracted folder to an easy location (Desktop or Documents)

โš ๏ธ Important: Remember where you saved this folder โ€” you'll need it in the next step!


๐Ÿ’ป Step 3: Open Terminal (Command Line)

Operating System How to Open
Windows Press Windows key, type cmd, press Enter
Mac Press Command + Space, type Terminal, press Enter
Linux Press Ctrl + Alt + T

You should see a black or white window with a blinking cursor โ€” this is your terminal.


๐Ÿ“‚ Step 4: Navigate to the Project Folder

In your terminal, type the following (don't press Enter yet):

cd 

๐Ÿ“Œ Note: Make sure there's a space after cd

Now, drag and drop the extracted folder from your file explorer directly into the terminal window. The path will appear automatically!

Press Enter.

Example of what you might see:

cd /Users/YourName/Desktop/OBC-IFCViewer-main

๐Ÿ“ฆ Step 5: Install Dependencies

Type this command and press Enter:

npm install

โณ Wait 1-2 minutes while it downloads the required components. You'll see text scrolling โ€” this is normal!

โœ… Success indicator: When it's done, you'll see your cursor again without any red "ERROR" messages.


๐Ÿš€ Step 6: Start the Viewer

Type this command and press Enter:

npm run dev

You should see something like this:

  VITE v5.x.x  ready in xxx ms

  โžœ  Local:   http://localhost:3000/
  โžœ  Network: http://192.168.x.x:3000/

๐ŸŽ‰ The viewer is now running! Keep this terminal window open.


๐ŸŒ Step 7: Open in Your Browser

  1. Copy the link shown in the terminal (usually http://localhost:3000)
  2. Open Google Chrome or Microsoft Edge (recommended browsers)
  3. Paste the link into the address bar and press Enter

You should now see the GOMERA X viewer interface!


๐Ÿ“ Step 8: Load Your IFC Model

  1. Look at the bottom toolbar of the viewer
  2. Click the ๐Ÿ“‚ folder icon (Load button)
  3. Select "Upload IFC" or "Upload Fragments"
  4. Choose an IFC file from your computer
  5. Wait for the model to load and appear in 3D

๐ŸŽŠ Congratulations! You're now viewing your BIM model in GOMERA X!


๐Ÿ›‘ How to Stop the Viewer

When you're done testing:

  1. Go back to your terminal window
  2. Press Ctrl + C (on both Windows and Mac)
  3. The server will stop, and you can close the terminal

โ“ Troubleshooting

Problem Solution
npm: command not found Node.js wasn't installed correctly. Restart Step 1
ENOENT: no such file or directory You're not in the right folder. Redo Step 4
ERESOLVE unable to resolve dependency tree Run npm install --legacy-peer-deps instead
Page won't load in browser Make sure the terminal still shows the server running
Model loads but looks wrong Try a different IFC file, or check if it's a valid IFC

๐Ÿ’ฌ Still stuck? Open an issue on this GitHub page describing your problem!

Building for Production

npm run build

The built files will be in the dist directory.

Preview Production Build

npm run preview

๐Ÿ“ Project Structure

OBC-IFCViewer/
โ”œโ”€โ”€ index.html                                 # HTML entry point
โ”œโ”€โ”€ package.json                               # Dependencies and scripts
โ”œโ”€โ”€ tsconfig.json                              # TypeScript configuration
โ”œโ”€โ”€ vite.config.ts                             # Vite bundler configuration
โ”œโ”€โ”€ public/
โ”‚   โ””โ”€โ”€ worker.mjs                             # Web worker for background tasks
โ””โ”€โ”€ src/
    โ”œโ”€โ”€ main.ts                                # Application entry point
    โ”œโ”€โ”€ IFCViewer.ts                           # Main viewer orchestration class
    โ”œโ”€โ”€ styles.css                             # Global styles
    โ””โ”€โ”€ modules/
        โ”œโ”€โ”€ UIManager.ts                       # UI Orchestration
        โ”‚
        โ”œโ”€โ”€ core/                              # ๐Ÿง  Core Application Modules
        โ”‚   โ”œโ”€โ”€ IFCLoaderModule.ts             # IFC & Fragments loading
        โ”‚   โ”œโ”€โ”€ PropertiesPanelModule.ts       # IFC tree and properties
        โ”‚   โ”œโ”€โ”€ PropertyTableModule.ts         # Excel-like property table
        โ”‚   โ”œโ”€โ”€ PerformanceMonitor.ts          # FPS & memory tracking
        โ”‚   โ”œโ”€โ”€ ViewerInitializer.ts           # Viewer setup & config
        โ”‚   โ”œโ”€โ”€ AIAssistantModule.ts           # ๐Ÿค– AI Assistant integration
        โ”‚   โ”œโ”€โ”€ ai/                            # AI Engine Components
        โ”‚   โ”‚   โ”œโ”€โ”€ WebLLMEngine.ts            # Local LLM (WebLLM/Qwen)
        โ”‚   โ”‚   โ”œโ”€โ”€ ConversationalEngine.ts    # Chat orchestration
        โ”‚   โ”‚   โ”œโ”€โ”€ ConversationContext.ts     # Context management
        โ”‚   โ”‚   โ”œโ”€โ”€ AIIntentEngine.ts          # User intent detection
        โ”‚   โ”‚   โ”œโ”€โ”€ AIBimActions.ts            # BIM-specific actions
        โ”‚   โ”‚   โ”œโ”€โ”€ AIRuleEngine.ts            # Rule-based responses
        โ”‚   โ”‚   โ”œโ”€โ”€ actions/                   # Action handlers
        โ”‚   โ”‚   โ”œโ”€โ”€ agent/                     # Agent components
        โ”‚   โ”‚   โ””โ”€โ”€ webllm/                    # WebLLM utilities
        โ”‚   โ””โ”€โ”€ properties/                    # Property Management
        โ”‚       โ”œโ”€โ”€ SelectionManager.ts        # Element selection
        โ”‚       โ”œโ”€โ”€ PropertyDisplayManager.ts  # Property display
        โ”‚       โ”œโ”€โ”€ TreeManager.ts             # IFC tree structure
        โ”‚       โ”œโ”€โ”€ StoreyDataManager.ts       # Storey/level data
        โ”‚       โ”œโ”€โ”€ GhostModeManager.ts        # Ghost mode rendering
        โ”‚       โ””โ”€โ”€ table/                     # Table components
        โ”‚
        โ”œโ”€โ”€ webgl/                             # ๐ŸŽฎ WebGL Feature Modules
        โ”‚   โ”œโ”€โ”€ index.ts                       # Module exports
        โ”‚   โ”œโ”€โ”€ WorldManager.ts                # 3D world (scene, camera, renderer)
        โ”‚   โ”œโ”€โ”€ ClipperModule.ts               # Advanced sectioning
        โ”‚   โ”œโ”€โ”€ ClipStylerModule.ts            # Section styling
        โ”‚   โ”œโ”€โ”€ MeasurementModule.ts           # Length/Area/Volume tools
        โ”‚   โ”œโ”€โ”€ FloorPlanModule.ts             # 2D floor plan views
        โ”‚   โ”œโ”€โ”€ ViewCubeModule.ts              # 3D navigation cube
        โ”‚   โ”œโ”€โ”€ MinimapModule.ts               # Minimap overlay
        โ”‚   โ”œโ”€โ”€ FirstPersonControlsModule.ts   # FPS-style navigation
        โ”‚   โ”œโ”€โ”€ ClusterModule.ts               # Element clustering
        โ”‚   โ”œโ”€โ”€ ColorSplashModule.ts           # Color highlighting
        โ”‚   โ”œโ”€โ”€ SpaceVisibilityModule.ts       # IfcSpace toggle
        โ”‚   โ”œโ”€โ”€ ModelTransformModule.ts        # Model positioning
        โ”‚   โ””โ”€โ”€ AdaptiveQualityController.ts   # Quality scaling
        โ”‚
        โ”œโ”€โ”€ webgpu/                            # โšก WebGPU Feature Modules
        โ”‚   โ”œโ”€โ”€ index.ts                       # Module exports
        โ”‚   โ”œโ”€โ”€ README.md                      # WebGPU documentation
        โ”‚   โ”œโ”€โ”€ WebGPURendererModule.ts        # Main renderer entry
        โ”‚   โ”œโ”€โ”€ ViewerWebGPUAPI.ts             # Public WebGPU API
        โ”‚   โ””โ”€โ”€ managers/                      # WebGPU Sub-managers
        โ”‚       โ”œโ”€โ”€ index.ts                   # Manager exports
        โ”‚       โ”œโ”€โ”€ WebGPULODManager.ts        # Level of Detail
        โ”‚       โ”œโ”€โ”€ WebGPUFog.ts               # Atmospheric fog
        โ”‚       โ”œโ”€โ”€ WebGPUOutlineManager.ts    # Selection outlines
        โ”‚       โ”œโ”€โ”€ WebGPUElementSelector.ts   # GPU picking
        โ”‚       โ”œโ”€โ”€ WebGPUColorPicker.ts       # Color picking
        โ”‚       โ”œโ”€โ”€ WebGPUEdgeManager.ts       # Edge rendering
        โ”‚       โ”œโ”€โ”€ WebGPUShadowManager.ts     # Shadow optimization
        โ”‚       โ”œโ”€โ”€ WebGPUAmbientOcclusion.ts  # AO effects
        โ”‚       โ”œโ”€โ”€ WebGPUMaterialFactory.ts   # Material creation
        โ”‚       โ”œโ”€โ”€ WebGPUCategoryPalette.ts   # Category colors
        โ”‚       โ”œโ”€โ”€ WebGPUGeometryUtils.ts     # Geometry helpers
        โ”‚       โ”œโ”€โ”€ WebGPUOptimizations.ts     # Performance utils
        โ”‚       โ”œโ”€โ”€ WebGPUProxySceneBuilder.ts # Scene building
        โ”‚       โ”œโ”€โ”€ WebGPUStatsManager.ts      # Stats tracking
        โ”‚       โ”œโ”€โ”€ WebGPUStatsOverlay.ts      # Stats UI overlay
        โ”‚       โ””โ”€โ”€ WebGPUTypes.ts             # TypeScript types
        โ”‚
        โ””โ”€โ”€ ui/                                # ๐ŸŽจ UI Components
            โ”œโ”€โ”€ ToolbarBuilder.ts              # Toolbar structure
            โ”œโ”€โ”€ ToolbarHandlers.ts             # Toolbar event handlers
            โ”œโ”€โ”€ UIStyles.ts                    # Shared CSS styles
            โ”œโ”€โ”€ LoadingUIManager.ts            # Loading indicators
            โ”œโ”€โ”€ NotificationUIManager.ts       # Notifications
            โ”œโ”€โ”€ NotificationHelper.ts          # Notification utils
            โ”œโ”€โ”€ SelectionUIManager.ts          # Selection UI
            โ”œโ”€โ”€ NavigationUIManager.ts         # Navigation controls
            โ”œโ”€โ”€ ClipperUIManager.ts            # Clipper controls
            โ”œโ”€โ”€ MeasurementUIManager.ts        # Measurement UI
            โ”œโ”€โ”€ FloorPlanUIManager.ts          # Floor plan UI
            โ”œโ”€โ”€ ClusterUIManager.ts            # Cluster visualization
            โ”œโ”€โ”€ WebGPUUIManager.ts             # WebGPU settings UI
            โ”œโ”€โ”€ ModelAlignmentManager.ts       # Model alignment panel
            โ”œโ”€โ”€ ModelDashboard.ts              # Model statistics
            โ”œโ”€โ”€ SlicerDashboard.ts             # Data slicer panel
            โ”œโ”€โ”€ AIAssistantUIManager.ts        # ๐Ÿค– AI chat UI manager
            โ”œโ”€โ”€ ai/                            # AI UI Components
            โ”‚   โ”œโ”€โ”€ AIChatManager.ts           # Chat message handling
            โ”‚   โ”œโ”€โ”€ AIDomManager.ts            # DOM element creation
            โ”‚   โ””โ”€โ”€ AIStyleManager.ts          # AI panel styling
            โ””โ”€โ”€ dashboard/                     # Dashboard Components
                โ”œโ”€โ”€ UIManager.ts               # Dashboard UI
                โ”œโ”€โ”€ DataManager.ts             # Data processing
                โ”œโ”€โ”€ ChartManager.ts            # Chart rendering
                โ”œโ”€โ”€ SlicerUIManager.ts         # Slicer UI
                โ”œโ”€โ”€ SlicerDataManager.ts       # Slicer data
                โ””โ”€โ”€ SlicerChartManager.ts      # Slicer charts

๐Ÿงฉ Module Overview

Core Modules (src/modules/core)

IFCLoaderModule

  • IFC file conversion to Fragments
  • Direct Fragments loading
  • Model management and export

PropertiesPanelModule

  • IFC hierarchical tree view
  • Element property inspection
  • Collapsible side panel

PropertyTableModule

  • Excel-like interactive table
  • Bulk property inspection
  • Advanced filtering and sorting

PerformanceMonitor

  • Real-time FPS tracking
  • Frame time and memory usage

WebGL Feature Modules (src/modules/webgl)

WorldManager

  • 3D environment setup (scene, camera, renderer)
  • Grid and visual aids
  • Lighting configuration

ClipperModule

  • Advanced model sectioning
  • Preset planes (X/Y/Z following AEC conventions)
  • Custom double-click sections
  • Flip and clear functionality

MeasurementModule

  • Length, Area, and Volume measurements
  • Perpendicular guides and snapping
  • Professional dimensioning

FloorPlanModule

  • Interactive 2D floor plan views
  • Automatic camera positioning
  • Pan/zoom navigation

WebGPU Feature Modules (src/modules/webgpu)

WebGPURendererModule

  • Experimental high-performance rendering engine
  • Orchestrates all WebGPU sub-managers
  • Optimized for massive models with millions of triangles

WebGPULODManager

  • Automatic Level of Detail (LOD) system
  • Distance-based geometry simplification
  • Significant performance gains for large scenes

WebGPUFog

  • Atmospheric fog effects (Linear/Exponential)
  • Enhanced depth perception
  • Works with MSAA anti-aliasing

WebGPUOutlineManager

  • Professional selection highlighting
  • Multi-pass outline rendering
  • Configurable colors and thickness

UI Modules (src/modules/ui & UIManager)

UIManager

  • Modern floating toolbar with glassmorphic styling
  • Expandable submenu system
  • Model count badge with tooltips
  • Event handling and state management

๐ŸŽฎ Usage

Loading an IFC File

  1. Click the Load button (folder icon) in the bottom toolbar
  2. Select upload option from the submenu
  3. Choose an .ifc or .frag file from your computer
  4. Wait for conversion (if IFC) or instant loading (if Fragments)
  5. Interact with the 3D model using mouse/touch controls

Modern Bottom Toolbar

The application features a modern floating toolbar at the bottom with the following controls:

Main Actions:

  • ๐Ÿ“‚ Load: Upload IFC/Fragments files or load sample models (expandable)
  • ๐Ÿ’พ Export: Download model/data in multiple formats (expandable)
    • Fragments (.frag)
    • glTF (.gltf)
    • GLB (.glb)
    • USDZ (.usdz)
    • Screenshot (PNG)
    • Properties (JSON)
  • ๐Ÿ‘๏ธ View: Camera controls and space visibility (expandable)
  • โœ‚๏ธ Clipper: Sectioning tool with presets (expandable)
    • Section X/Y/Z (AEC convention aligned)
    • Flip Side (show opposite cut)
    • Clear All sections
  • โ„น๏ธ Info: Model information and statistics (expandable)
  • ๐Ÿ—‘๏ธ Clear: Remove all loaded models
  • โš™๏ธ Settings: Scene customization and performance (expandable)
    • Renderer Mode: Switch between WebGL and experimental WebGPU
    • Shadow Quality: Adjust shadow resolution for performance
    • Background Color: Customize the viewer environment

Model Count Badge:

  • Displays total number of loaded models
  • Hover to see detailed tooltip with model names and UUIDs
  • Positioned on the Load button for easy access

ViewCube (Top-Right):

  • Click any face for instant camera orientation
  • Perfect for switching between plan/elevation views
  • Smooth animated transitions

Scene Controls (Settings Menu)

  • Background Color: Change the scene background
  • Directional Light: Adjust main light intensity
  • Ambient Light: Adjust ambient illumination

Automatic Model Alignment

Models automatically align to their site coordinates when loaded. No manual alignment required! The viewer uses COORDINATE_TO_ORIGIN = false in the FragmentsManager to preserve original project coordinates, ensuring multi-discipline models (Architectural, Structural, MEP, etc.) align correctly.

3D Navigation

Mouse Controls:

  • Rotate: Left mouse button (or one finger drag on mobile)
  • Pan: Right mouse button (or two finger drag on mobile)
  • Zoom: Mouse wheel (or pinch on mobile)
  • Select: Single-click on elements to view properties

ViewCube Navigation:

  • Click any face (front/back/left/right/top/bottom) for instant orientation
  • Automatic smooth camera transitions
  • Perfect for reviewing floor plans and elevations

Sectioning Tool

Enable: Click the scissors icon โœ‚๏ธ in the toolbar

Section Methods:

  • Section X: Side view cut (perpendicular to X axis)
  • Section Y: Horizontal floor plan cut (top view, AEC standard)
  • Section Z: Vertical elevation cut (front view, AEC standard)
  • Custom Sections: Double-click on model to create plane at that point

Additional Controls:

  • Flip Side: Show opposite side of section cut
  • Clear All: Remove all section planes
  • Delete Key: Remove sections when clipper is enabled

Sectioning Tips:

  • Preset sections auto-replace previous ones for cleaner workflow
  • Flip is stable even when moving the mouse
  • Follow AEC conventions (Y=horizontal plan, Z=vertical elevation)

Model Alignment Tool

Enable: Click View โ†’ Align Models in the toolbar

Features:

  • Model Selection: Choose any loaded model from dropdown
  • Position Display: Current X, Y, Z coordinates (AEC standard with Z as elevation)
  • Manual Input: Type precise coordinate values (0.1m precision)
  • Arrow Key Controls:
    • โ†/โ†’: Move along X axis (left/right)
    • โ†‘/โ†“: Move along Y axis (forward/backward)
    • Shift + โ†‘/โ†“: Move along Z axis (elevation)
  • Step Size: Configurable increment for arrow keys (default: 1m)
  • Draggable Panel: Reposition panel anywhere on screen
  • Minimize/Expand: Collapse panel when not needed
  • Apply/Reset: Update position or return to origin (0, 0, 0)

Use Cases:

  • Align models from different coordinate systems
  • Position far-origin models (>100km from origin)
  • Fine-tune multi-discipline model placement
  • Verify model elevations and offsets

Workflow:

  1. Load multiple IFC models
  2. Open Model Alignment panel from View menu
  3. Select model to reposition from dropdown
  4. Adjust using manual inputs or arrow keys
  5. Click Apply to update position
  6. Drag panel to preferred location, minimize when done

Technologies Used

๐Ÿ“š Learn More

๐Ÿค Contributing

This is a demonstration project. Feel free to fork and modify for your needs.

๐Ÿ“„ License

MIT License

Copyright (c) 2026 GomeraX Contributors

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

โš ๏ธ Disclaimer

GomeraX is provided for informational and experimental purposes only.

No Engineering or Legal Advice: The visualization, data parsing, and AI features within GomeraX are not a substitute for professional engineering, architectural, or legal advice. While this application uses the OpenBIM Components (OBC) framework to render IFC files, users must verify all dimensions, properties, and structural data using certified industry-standard software before making construction decisions.

AI Limitations (WebLLM / Local Models): This application integrates local AI models (e.g., Qwen via WebLLM) to assist with data analysis.

  • Possibility of Error: AI models can "hallucinate" or generate incorrect information, especially regarding technical building codes, structural calculations, or compliance standards.
  • User Responsibility: You are solely responsible for reviewing and verifying any output generated by the AI assistant. The developers of GomeraX accept no liability for actions taken based on AI-generated suggestions.

Experimental Features: Features utilizing WebGPU are experimental and may not perform consistently across all hardware configurations. The software is provided "as is" under the MIT License, without warranty of any kind.

๐Ÿ™ Acknowledgments

  • That Open Company for the excellent Open BIM Components (OBC) libraries
  • Three.js team for the amazing 3D engine
  • BuildingSMART for the IFC standard
  • WebLLM for enabling on-device LLM inference in the browser
  • Qwen3 by Alibaba Cloud for the AI language models used in the BIM assistant

About

An Experimental IFC Viewer with Local AI Assistant

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors