VisionView Logo
HackWestern 12

The Coordination
Layer for GeoSpatial Data

Blazing fast 3D model processing. Generate meshes, split components, and visualize geometry — without complex pipelines.

Launch Demo
GEMINI PRO
SKETCHFAB
OPENAI
ARDUINO
Data Volume
0h:12m:43s
Rendering...
36GB/s
Preloaded Models
5
Meshes Processed
2.1M
Total Vertices
1.72B
PROCESS

How It Works

01

Generate

Upload your 3D models or generate your own geospatial data files through our streamlined interface.

02

Process

AI-powered processing generates meshes and extracts components automatically.

03

Analyze

Real-time visualization and analysis tools help you understand your data.

04

Export

Export processed models, masks, and metadata in your preferred format.

METRICS

Performance Metrics

About the Solutions

SAM3D META Model is a custom-built 3D segmentation model powered by Meta's SAM (Segment Anything Model) architecture, fine-tuned for geospatial mesh processing. It performs automated component extraction and mesh segmentation directly from 3D models.

Sketchfab Import refers to the pipeline that imports pre-processed 3D models from Sketchfab's platform, leveraging their optimized meshes and metadata for faster rendering times.

The chart below compares render times across both solutions. We have working implementations for both approaches, but for deployment we focused on the Sketchfab import pipeline due to deployment constraints. Our server operates with 32GB VRAM, which limits our ability to deploy SAM3D for every use case. While SAM3D provides superior accuracy and performs much better on larger meshes, it requires more computational resources. For production, we prioritized the Sketchfab import solution which offers faster processing with pre-optimized assets, especially for smaller to medium-sized models.

Render Time Comparison

This chart shows the average time to render models across different mesh complexities. Lower render times indicate faster processing.

5.0s4.0s3.0s2.0s1.0s0s
Sketchfab
Meta
Small Mesh (<10 mesh objects)
Sketchfab
Meta
Med Mesh (10-50 mesh objects)
Sketchfab
Meta
Large Mesh (50-100 mesh objects)
Sketchfab
Meta
XL Mesh (>100 mesh objects)
Sketchfab Import
SAM3D META Model
2.8s
Avg Sketchfab
3.4s
Avg META Model
Models Processed
2,847
Total processed
Total count of 3D models processed through both Sketchfab import and SAM3D pipelines during deployment testing and production runs.
Success Rate
94.2%
Processing success
Percentage of models that completed processing without errors. Calculated from successful imports/generations divided by total attempts across both solutions.
Time Saved
62%
Vs traditional pipeline
Average time reduction compared to traditional manual 3D processing pipelines. Measured by comparing render times across different mesh complexities using our optimized solutions.
INTEGRATIONS

AI Model Integration

Gemini Pro

Integrated via OpenRouter API for real-time 3D mesh component identification. When users trigger AI identification, Gemini analyzes highlighted mesh components from screenshots, providing structured JSON responses with part names, descriptions, categories, and confidence scores. It also generates annotated images with wireframe overlays and labels for educational visualization.

Use Case
Component ID & Annotation
Model
gemini-2.0-flash-exp
OpenAI

Processes identified mesh components to generate detailed educational explanations of individual object meshes. After component identification, GPT-4 analyzes mesh geometry, position, and context to provide comprehensive descriptions, functional explanations, and educational content about each component's role and characteristics.

Use Case
Mesh Explanation
Model
GPT-4
Mesh Extraction via Gemini
Iron Man mesh extraction example
Example Mesh

How Gemini Extracts Mesh Components

We use Gemini Pro to analyze 3D model structures and intelligently identify individual components within complex meshes. The model processes geometric data and contextual information to segment models into distinct parts.

For example, when processing a character model like Iron Man, Gemini analyzes the mesh geometry to identify separate components such as the helmet, chest plate, gauntlets, and other modular parts. This enables automated component extraction without manual labeling.

Annotated mesh extraction example
Annotated Output
Marking Explanation

The annotated output shows how Gemini generates visual overlays on identified mesh components. Purple markings highlight the selected component being analyzed, while white wireframe lines and labels indicate relationships between parts. Arrows and diagrams illustrate component boundaries and spatial relationships, making it easier to understand the mesh structure and identify individual elements.

Model Workflow
Upload
AI Identification Trigger
GPT-4 Processing
Gemini Pro Annotation
Export
MOTION CONTROL

Arduino M5StickCPlus2 Integration

Arduino

Camera Stick

Real-time 3D mesh rotation control using the M5StickCPlus2's IMU sensors. The device streams quaternion orientation data via BLE at 500Hz, enabling smooth camera rotation in the 3D viewer. Button A toggles streaming, Button B triggers mesh splitting.

Madgwick Filter
AHRS.updateIMU(gx, gy, gz, ax, ay, az)
Fuses gyro (rad/s) + accel (g) for orientation
Relative Quaternion
q_rel = qCurr × conj(qRef)
Re-centers orientation on button press
Streaming Rate
500Hz
BLE quaternion updates
Gyro Calibration
250 samples
1s bias estimation
Latency
<2ms
End-to-end response
Rotation Mathematics
// Euler to Quaternion (ZYX order)
q_w = cos(r/2)cos(p/2)cos(y/2) + sin(r/2)sin(p/2)sin(y/2)
q_x = sin(r/2)cos(p/2)cos(y/2) - cos(r/2)sin(p/2)sin(y/2)
q_y = cos(r/2)sin(p/2)cos(y/2) + sin(r/2)cos(p/2)sin(y/2)
q_z = cos(r/2)cos(p/2)sin(y/2) - sin(r/2)sin(p/2)cos(y/2)
Arduino

Object Stick

Button-based controller for 3D model interactions. Sends special quaternion patterns via BLE to trigger specific actions in the viewer. Button A triggers AI identification, Button B cycles through zoom levels (2x zoom in, 2x zoom out).

Button A: AI Identify
q = {1.0, 1.0, 1.0, 0.0}
Triggers Gemini Pro component analysis
Button B: Zoom Control
Zoom In: {-1.0, -1.0, -1.0, 0.0}
Zoom Out: {-2.0, -2.0, -2.0, 0.0}
4-state cycle: 2x in, 2x out
Connection Mode
BLE Identity
Sends q = {0,0,0,1} when idle
Re-advertise
Auto + Manual
Long-press B for recovery
BLE Protocol
// Service UUID: 12345678-1234-5678-1234-56789abcdef0
// Characteristic UUID: 12345678-1234-5678-1234-56789abcdef1
// Packet: struct QuatPacket { float qx, qy, qz, qw; }
// Actions encoded as special quaternion patterns