REALSEE
  • Gallery
  • Product
    The effortless all-in-one 3D tour solution that doubles your profits.
    • Capture Device
      • Galois
        GaloisHot
        3D LiDAR Camera
      • REALSEE G1
        REALSEE G1
        Smartphone Gimbal
      • 360 Camera
        360 Camera
        Wide Compatibility
      • Mobile phone
        Mobile phone
        Capture Easily
    • 3D Tour Features
      • Editor Features
        Editor FeaturesHot
        Powerful 3D Tour Editing Features
  • Solutions
    Leading 3D Tour Producer, Tailored for Real Estate
    • Client Type
      • Real Estate Photographer
        Real Estate Photographer
        Effortless 3D tour, double your profits in no time.
      • Real Estate Agency
        Real Estate Agency
        Boost your listings with Realsee's pay-as-you-go 3D tour solution.
      • Real Estate Brokerage
        Real Estate Brokerage
        Professional-grade 3D solutions for real estate brokers.
  • Support
    Get help and resources for our services.
    • Support
      • Help Center
        Help Center
        Find FAQs and guides for your questions.
      • Contact Us
        Contact Us
        Contact our team for personalized inquiries.
  • Resources
    Explore valuable information and insights.
    • Resources
      • About Us
        About Us
        Learn more about our mission and team.
      • Partners
        Partners
        Discover partnership opportunities with us.
      • Blog
        Blog
        Stay updated with latest news & creator stories via our blog.
  • Store
    Browse our products and services.
    • Plans
      • Credit Plans
        Credit Plans
        Purchase Realsee credits for 3D tour hosting and downloads with a pay-as-you-go option.
      • New User Free Trial
        New User Free Trial
        Learn about free benefits for new users.
    • Realsee Cameras
      • Galois M2
        Galois M2
        Purchase the professional LiDAR camera to elevate your business.
      • G1 Gimbal
        G1 Gimbal
        Contact sales for G1 gimbal inquiries.
Contact UsContact Us
Choose Language
English
简体中文
Log inSign up
E-mail us
mkt@realsee.com
REALSEE
Product
  • Product
    The effortless all-in-one 3D tour solution that doubles your profits.
    • Capture Device
      • Galois
        GaloisHot
        3D LiDAR Camera
      • REALSEE G1
        REALSEE G1
        Smartphone Gimbal
      • 360 Camera
        360 Camera
        Wide Compatibility
      • Mobile phone
        Mobile phone
        Capture Easily
    • 3D Tour Features
      • Editor Features
        Editor FeaturesHot
        Powerful 3D Tour Editing Features
Deliverables
  • Deliverables Downloads
Solution
  • Solutions
    Leading 3D Tour Producer, Tailored for Real Estate
    • Client Type
      • Real Estate Photographer
        Real Estate Photographer
        Effortless 3D tour, double your profits in no time.
      • Real Estate Agency
        Real Estate Agency
        Boost your listings with Realsee's pay-as-you-go 3D tour solution.
      • Real Estate Brokerage
        Real Estate Brokerage
        Professional-grade 3D solutions for real estate brokers.
Gallery
Support
  • Support
    Get help and resources for our services.
    • Support
      • Help Center
        Help Center
        Find FAQs and guides for your questions.
      • Contact Us
        Contact Us
        Contact our team for personalized inquiries.
Resources
  • Resources
    Explore valuable information and insights.
    • Resources
      • About Us
        About Us
        Learn more about our mission and team.
      • Partners
        Partners
        Discover partnership opportunities with us.
      • Blog
        Blog
        Stay updated with latest news & creator stories via our blog.
Store
  • Store
    Browse our products and services.
    • Plans
      • Credit Plans
        Credit Plans
        Purchase Realsee credits for 3D tour hosting and downloads with a pay-as-you-go option.
      • New User Free Trial
        New User Free Trial
        Learn about free benefits for new users.
    • Realsee Cameras
      • Galois M2
        Galois M2
        Purchase the professional LiDAR camera to elevate your business.
      • G1 Gimbal
        G1 Gimbal
        Contact sales for G1 gimbal inquiries.
  • Contact Us
  • En
    • English
    • 简体中文
  • Get Started Free

Tips

Creating a High-Quality VR Property Listing Page: From 3D Tours to Data Integration

A demo property detail page built with Realsee's 3D Tour output, exploring optimal presentation of VR content and associated data on web pages, with shared technical implementations and development insights.
Recent Update: July 17, 2025

Project Background

Recently, I built a property detail page demo using Realsee's 3D Tour output. The primary goal was to explore how to best present VR content and its associated data within a web page. This article shares some technical implementations and insights gained during development.

The project stemmed from an observation: while our VR technology is robust, many clients integrating our VR content into their websites often resort to simply embedding an iframe. This approach underutilizes the rich data generated alongside the VR experience. Valuable assets like panoramas, space snapshots, and floor plans are frequently overlooked or presented ineffectively.

I wanted to explore: How can we seamlessly integrate the core VR experience with these supplementary datasets to create a more comprehensive and engaging property showcase? As a technical demo, I also aimed to provide a reference point for other developers.

Demo Address: https://house-info-demo.realsee.dev/


Thought Process Behind Technology Choices

Why a Pure Frontend Approach?

This project is built purely with frontend technologies: HTML + CSS + vanilla JavaScript, without any frameworks. This decision was deliberate:

  1. Framework vs. Vanilla Trade-off: Initially, I considered frameworks like React or Vue for their componentization benefits. However, the demo's core focus is showcasing VR content and image assets, with relatively simple interaction logic. Introducing a framework felt like potential overkill. Furthermore, many real estate websites operate on more traditional tech stacks; a pure frontend solution is often easier for them to understand and adopt.
  2. Performance Considerations: VR content is inherently resource-intensive, especially on mobile devices. Adding framework overhead increases initial load times – a critical factor in property listings. If users don't see meaningful content within three seconds, they're likely to leave.
  3. Debugging & Customization Ease: Vanilla code offers transparency. Tweaking a visual effect often means modifying CSS or JS directly, bypassing framework constraints. This agility is crucial for a demo project requiring frequent UI/UX adjustments.


The Challenge of Data Scale

The project involved managing significant resource volumes:

  • 118 x 360° Panoramas: ~100KB–200KB each, totaling ~15MB–20MB.
  • 15 x Space Snapshots: ~50KB–100KB each, totaling ~1.5MB.
  • 3 x Floor Plans: ~200KB–300KB each, totaling ~800KB.
  • Miscellaneous Images: Cover images, logos, etc., ~500KB.

Total resource size approached ~20MB. This presented substantial challenges for page load performance and user experience, necessitating careful loading strategy design.


Implementing Five Core Features

1. VR Feature Card - Dynamic Logo & Navigation

Design Goal: 

A common issue on property pages is that users are missing the VR capability. Links are often buried or use low-impact text labels like "VR Tour."

My objective was clear: users should immediately recognize the VR availability upon landing and feel compelled to click. This demanded strong visual differentiation.

Implementation: 

We overlaid a dynamic Realsee logo onto the property's cover image. Achieving smooth animation involved sprite animation techniques.

image.png

Design Considerations & Practical Challenges:

Positioning Trade-offs:
After careful evaluation, we ultimately opted to center the logo directly on the property cover image. This was achieved using CSS:

position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);

This deliberate placement ensures immediate user focus on the VR feature, avoiding the risk of edge positioning where critical calls-to-action might be overlooked.

Why Sprite Animation?

Instead of simple CSS transforms, we implemented a 74-frame sprite animation. This decision was driven by three key factors:

  1. Superior Visual Fidelity: Each frame was meticulously crafted by professional motion designers, enabling fluid transitions impossible with procedural CSS animations.
  2. Enhanced Impact: The hand-tuned animation sequence delivers greater emotional resonance and brand recognition than algorithmic transformations.
  3. Performance Consistency: Sprite animation eliminates computational overhead from complex CSS calculations, ensuring reliable performance across devices – especially critical when combined with resource-intensive VR content.

Technical Implementation of Click Handling

To enable seamless VR navigation, we implemented a straightforward click handler:

javascript

function toVR() {
window.open("https://realsee.ai/VbOOkJX4", "_blank");
}

Applied to the animated logo via:

html

<div class="vr_animation_logo" onclick="toVR()"></div>

Precision Sizing & Scaling:
The base logo size was set to 120px, but was visually scaled down to ~76px using transform: scale(0.63). This approach:

  • Preserves sprite image sharpness (no rasterization artifacts from direct downscaling)
  • Minimizes layout footprint while maintaining visual prominence


2. VR iframe Embedding - Intelligent Viewport & Rendering Optimization

Identifying the Core Challenges of VR Web Embedding

Embedding VR content into web pages appears straightforward with iframes, but presents multiple technical hurdles:

  1. Visual Quality Challenges
  • VR panoramas use spherical projection, causing noticeable edge distortion with improper viewport ratios
  • Traditional fixed-aspect solutions fail on ultra-wide or irregular screens
  1. Device Adaptation Complexity
  • Supporting everything from 27" 4K monitors to 6" mobile screens requires intelligent scaling
  • Must preserve VR immersion while optimizing for each device class
  1. Performance-Experience Tradeoffs
  • VR rendering is computationally expensive
  • Poor viewport design wastes resources and disrupts page layout


Core Innovation: Math-Based Viewport Strategy

Our solution stems from fundamental VR rendering mathematics:

Technical Foundation
VR tours use equirectangular projection to map spherical imagery to 2D. The viewport aspect ratio directly impacts distortion levels. Through extensive testing, we discovered a key insight:

When normalizing screen height to 1.0, keeping viewport width ≤1.0 minimizes distortion.

javascript

// Smart Viewport Adaptation Algorithm
class VRViewportOptimizer {
static calculateOptimalDimensions(deviceWidth, deviceHeight) {
const heightUnit = 1.0;
const aspectRatio = deviceWidth / deviceHeight;

return {
normalizedWidth: Math.min(aspectRatio, 1.0),
heightUnit: heightUnit,
distortionLevel: this.calculateDistortion(aspectRatio),
recommendedRatio: this.getRecommendedRatio(aspectRatio)
};
}

static calculateDistortion(aspectRatio) {
if (aspectRatio <= 1.0) return 'minimal';
if (aspectRatio <= 1.33) return 'acceptable'; // 4:3
if (aspectRatio <= 1.78) return 'noticeable'; // 16:9
return 'significant'; // Ultra-wide
}

static getRecommendedRatio(aspectRatio) {
if (aspectRatio >= 0.5 && aspectRatio <= 0.7) return '9:16'; // Mobile portrait
if (aspectRatio >= 1.5 && aspectRatio <= 2.0) return '16:9'; // Tablet landscape
return '4:3'; // Desktop optimal
}
}


Rendering Quality Classification

We established a scientific quality assessment system:


image.png


Implementation: Responsive Container System

css

/* Core VR Container - Device-Adaptive */
.tour-container {
position: relative;
width: 100%;
aspect-ratio: 4/3; /* Desktop optimal */
max-width: 1200px;
margin: 0 auto;
border-radius: 12px;
overflow: hidden;
background: linear-gradient(135deg, #f8f9fa 0%, #ffffff 100%);
}

/* Tablet Optimization */
@media (max-width: 768px) {
.tour-container { aspect-ratio: 16/9; max-width: 100%; }
}

/* Mobile Optimization */
@media (max-width: 480px) {
.tour-container { aspect-ratio: 9/16; max-width: 100%; }
}

/* iframe Precision Layout */
.tour-container iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
border: none;
border-radius: 8px;
}


Design Rationale

Desktop 4:3: Near-square minimizes distortion for prolonged viewing

  • Tablet 16:9: Balances visual quality with screen utilization
  • Mobile 9:16: Eliminates edge distortion despite a smaller viewport

Configuration Optimization: iframe Parameters

html

<iframe
src="https://realsee.ai/VbOOkJX4?theme=minimalist&unbranded=1"
width="100%"
height="100%"
frameborder="0"
scrolling="no"
allowfullscreen
allow="fullscreen; autoplay; camera; microphone; web-share"
sandbox="allow-scripts allow-same-origin allow-fullscreen allow-presentation"
referrerpolicy="strict-origin-when-cross-origin"
loading="lazy"
title="3D Virtual Tour - Explore Bellevue Property"
></iframe>

Business Logic in Configuration

  • theme=minimalist: Removes UI clutter, focuses on property
  • unbranded=1: For B2B white-labeling
  • Dual allowfullscreen ensures cross-browser compatibility

Security & Permission Architecture

html

sandbox="allow-scripts allow-same-origin allow-fullscreen allow-presentation"
  • Granular permission control for security
  • loading="lazy" Improves initial load performance
  • referrerpolicy enhances privacy compliance

Real-World Debugging Insights

javascript

// Handling iOS Safari fullscreen limitations
function checkFullscreenSupport() {
const iframe = document.querySelector('.tour-container iframe');
if (!iframe.requestFullscreen && !iframe.webkitRequestFullscreen) {
console.warn('Fullscreen restricted - fallback activated');
// Implement modal zoom alternative
}
}

// Chrome autoplay workaround
document.querySelector('.vr_animation_logo').addEventListener('click', function() {
const iframe = document.querySelector('.tour-container iframe');
iframe.src = iframe.src + '&autostart=1'; // Trigger after user interaction
});

Business Impact

Technical Value

  • Solved core VR embedding challenges
  • Established scientific quality metrics
  • Achieved true device-agnostic adaptation

Commercial Value

  • Lowered integration barriers
  • Improved conversion rates through better UX
  • Standardized implementation reduced project costs

Future Roadmap
Laying groundwork for WebXR adoption and adaptive rendering strategies that approach native-app quality.


3. VR Supplementary Content - Smart Gallery Implementation

The Challenge of Mass Image Display

With 118 panorama images, traditional loading approaches would:

  • Consume excessive bandwidth (~20MB total)
  • Causes UI freezing during rendering
  • Overwhelm users with unstructured content

Our solution required balancing content richness with performance.

Progressive Loading Architecture

javascript

function initializePanoramaLoadMore() {
const panoramaItems = document.querySelectorAll('.panorama-item');
const initialCount = 8; // Initial visible set

// Hide excess items
for (let i = initialCount; i < panoramaItems.length; i++) {
panoramaItems[i].classList.add('hidden');
}
updateLoadMoreButton();
}

function loadMorePanoramas() {
const hiddenItems = document.querySelectorAll('.panorama-item.hidden');
const loadCount = Math.min(12, hiddenItems.length); // Batch size

for (let i = 0; i < loadCount; i++) {
hiddenItems[i].classList.remove('hidden');
hiddenItems[i].style.animation = 'fadeInUp 0.6s ease forwards';
}
updateLoadMoreButton();
}

Batch Loading Strategy

  • First Load: 8 images (optimal for all screen sizes)
  • Subsequent Loads: 12-image increments (noticeable content growth without wait penalty)

Content Organization System

javascript

const imageCategories = {
panorama: {
title: "360° Panoramas",
count: 118,
description: "Complete spherical views from each scan position",
folder: "./assets/panorama/"
},
snapshots: {
title: "Space Snapshots",
count: 15,
description: "Curated still images highlighting key spaces",
folder: "./assets/snapshots/"
}
};

Taxonomy Benefits

  • Predictability: Clear content expectations per category
  • Reduced Decision Fatigue: Targeted navigation vs endless scrolling
  • Discovery Efficiency: Direct access to content types

Interaction Refinements

css

.panorama-item {
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.panorama-item:hover {
transform: translateY(-5px);
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
}

/* Dynamic caption overlay */
.panorama-item::after {
content: attr(data-room-name);
background: linear-gradient(transparent, rgba(0,0,0,0.7));
transform: translateY(100%);
transition: transform 0.3s ease;
}

UX Considerations

  • Visual Feedback: Hover elevation indicates interactivity
  • Contextual Labels: Room names appear on interaction
  • Motion Design: Bézier curves for natural movement

Modal Viewer Implementation

javascript

function openPanoramaModal(imageSrc, imageIndex) {
const modal = document.getElementById('panoramaModal');
modal.style.display = 'flex';
modal.dataset.currentIndex = imageIndex;

// Keyboard navigation
document.addEventListener('keydown', (e) => {
if (e.key === 'Escape') closeModal();
if (e.key === 'ArrowLeft') navigate(-1);
if (e.key === 'ArrowRight') navigate(1);
});

// Adjacent image preloading
preloadImages(imageIndex ± 1);
}

Navigation Features

  • Keyboard Control: Arrow keys for sequential browsing
  • Performance Optimization: Neighbor image preloading
  • Accessibility: Escape key closes modal


4. Google Street View Integration - Cloud-Publishing 3D Spaces

Business Value Proposition

Traditional Street View requires specialized vehicles, while our solution enables:

  • Instant publishing of indoor/private spaces
  • Global visibility through Google's network
  • Seamless embeddable tours without redirects

Technical Workflow

  1. Data Upload
  • Push 3D scans from Realsee VR to Street View API
  • Obtain unique panoId for each space
  1. Embed Implementation

html

<iframe
src="https://www.google.com/maps/embed?pb=!4v1700000000000!6m8!1m7!1sYOUR_PANO_ID"
width="100%"
height="400"
style="border:0;"
allowfullscreen
loading="lazy"
referrerpolicy="no-referrer-when-downgrade">
</iframe>

Key Applications

  • Real estate virtual showings
  • Retail space promotions
  • Cultural heritage preservation


5. Property-VR Data Fusion

Traditional Listing Limitations

"Information silos" separate VR content from property details, forcing users to reconcile disjointed data mentally.

Unified Data Structure

javascript

const propertyData = {
basic: {
price: 738000,
area: 5766
},
vr: {
vrUrl: "https://realsee.ai/VbOOkJX4",
scanDate: "2024-11-15"
},
features: {
highlights: ["Modern finishes", "Open kitchen"]
}
};

Render Synchronization

javascript

function renderPropertyInfo(data) {
document.querySelector('.price').textContent = `$${data.basic.price.toLocaleString()}`;
document.querySelector('.vr-stats').textContent =
`${data.vr.panoramicCount} panoramas • ${data.vr.snapshotCount} snapshots`;
// Dynamic feature list generation
renderFeaturesList(data.features);
}

Technical Insights

Performance Optimization

javascript

// Lazy loading with IntersectionObserver
const observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
const img = entry.target;
img.src = img.dataset.src;
observer.unobserve(img);
}
});
});

Responsive Adaptation

css

@media (max-width: 480px) {
.panorama-grid { grid-template-columns: repeat(2, 1fr); }
.tour-container { height: 250px; }
}

Graceful Degradation

  • Fallback to static images if VR fails
  • Placeholders for loading/error states
  • Core info remains accessible without JS


Conclusion & Future Directions

Validated Technical Approaches

  1. VR Embedding: Achieved near-native experience through:
  • Mathematical viewport optimization
  • Cross-browser permission strategies
  • Device-specific responsive rules
  1. Content Management:
  • Progressive loading for mass imagery
  • Intuitive categorical organization
  • Performance-conscious interactions
  1. Data Integration:
  • Unified property-VR data model
  • Dynamic rendering synchronization
  • Resilient fallback mechanisms

Evolution of Design Thinking

  • From feature-checklist mentality
  • To goal-oriented experience design:
    • Each element must serve user decision-making
    • Technology as enabler, not centerpiece
    • Interactive exploration over passive viewing

Roadmap for Enhancement


image.png


Project Demo: house-info-demo.realsee.dev

Key Takeaway:
True technological value emerges when solutions are designed backward from user needs rather than forward from technical capabilities. This project demonstrates how VR can transcend novelty status to become an authentic utility in property evaluation workflows.

  • Product
    • Galois
    • Realsee G1
    • 360 Camera
    • Mobile phone
  • Solution
    • Real Estate Photographer
    • Real Estate Agency
  • Resources
    • About Us
    • Partners
  • Quick links
    • Realsee App
    • Console
    • Help Center
    • Legal agreements
  • Contact Us
    LinkedInFaceBookYoutubeXRedditWhatsApp
Realsee
©Copyright 2024 Beike Realsee Technology (HK) Limited All rights reserved|Various trademarks held by their respective owners.

More from Tips

Benefits of Using Drones for Real Estate: Marketing & Inspections

Benefits of Using Drones for Real Estate: Marketing & Inspections

August 01, 2025
What Are As-Built Drawings and Why Are They Essential in Construction?

What Are As-Built Drawings and Why Are They Essential in Construction?

August 01, 2025
VDC vs BIM: Key Differences and How They Impact Construction Projects

VDC vs BIM: Key Differences and How They Impact Construction Projects

July 18, 2025
View more