An Immersive 3D Property Visualization & Virtual Tour Platform Built with Next.js, React Three Fiber & Three.js
Design interactive digital twins of real-world properties, create immersive virtual walkthroughs, and explore every room through realistic first-person navigation.
Aura Plan is a modern full-stack 3D property visualization and virtual tour platform that enables property owners to transform real-world spaces into immersive digital experiences. Built with Next.js 16, React 19, TypeScript, Three.js, React Three Fiber, Prisma, and PostgreSQL, the platform combines interactive WebGL rendering with a scalable backend to create realistic virtual property walkthroughs.
Instead of static image galleries, Aura Plan allows hosts to build complete digital representations of their properties by defining room dimensions, uploading panoramic surface images, and connecting rooms through interactive hotspots. Visitors can freely navigate these spaces using first-person controls or inspect the overall room structure through an exterior 3D cube view.
The platform supports both desktop and mobile devices with adaptive navigation systems, making immersive virtual tours accessible across different screen sizes and input methods.
Whether you're showcasing residential properties, commercial spaces, or architectural concepts, Aura Plan demonstrates how modern web technologies can deliver engaging and interactive 3D experiences directly within the browser.
Experience properties as if you were physically inside them.
Features include:
- First-person navigation
- Realistic camera positioning
- Smooth movement controls
- Interactive room exploration
- Browser-based 3D rendering
Hosts can construct realistic digital twins of physical rooms.
Each room supports:
- Custom width
- Length
- Height
- Viewing height
- Six independent wall textures
Every room is built using six individual texture surfaces.
Supported surfaces include:
- Front Wall
- Back Wall
- Left Wall
- Right Wall
- Ceiling
- Floor
Each surface can display a unique uploaded image, creating a realistic panoramic environment.
Move naturally between connected spaces using interactive hotspots.
Hotspot capabilities include:
- Clickable navigation nodes
- Room transitions
- Hover interactions
- Custom labels
- Spatial positioning
Switch from interior exploration to an external architectural view.
Features include:
- Orbit controls
- Full cube rotation
- Interactive inspection
- Complete room visualization
Aura Plan automatically adapts to different input devices.
- Mouse Look
- Pointer Lock
- Keyboard Navigation
- Smooth Camera Controls
- Virtual Joystick
- Touch Camera Rotation
- Responsive Navigation
- Mobile-Optimized Controls
Each virtual room is generated using real-world measurements.
Configurable properties include:
- Width
- Length
- Height
- Viewing height
This enables accurate spatial representation inside the 3D environment.
Users remain safely inside the room boundaries during navigation.
The engine includes:
- Boundary constraints
- Camera collision checks
- Position clamping
- Movement validation
This prevents users from walking through walls or leaving the virtual environment.
Property imagery is securely uploaded and managed through Cloudinary.
Benefits include:
- Fast image delivery
- Cloud-based storage
- Optimized asset loading
- Reliable media hosting
Aura Plan separates property owners from visitors through dedicated account models.
- Create properties
- Manage rooms
- Upload textures
- Configure hotspots
- Publish virtual tours
- Explore properties
- View virtual tours
- Save favorites
- Browse listings
Aura Plan was built to explore how modern web technologies can recreate real-world spaces inside the browser using interactive 3D graphics.
Rather than displaying static property images, the project focuses on creating immersive digital twins that allow visitors to experience spaces through realistic first-person navigation and interactive room transitions.
Throughout development, the project explored concepts including:
- WebGL rendering
- Three.js
- React Three Fiber
- Interactive 3D navigation
- Collision detection
- Spatial modeling
- Responsive input systems
- Cloud image management
- Prisma ORM
- PostgreSQL database design
- Full-stack application architecture
The result is a browser-based virtual touring platform that combines real-time graphics, scalable backend services, and modern web development practices into a single application.
| Technology | Purpose |
|---|---|
| Next.js 16 (App Router) | Full-Stack React Framework |
| React 19 | User Interface |
| TypeScript | Type Safety |
| Tailwind CSS v4 | Styling |
| React Three Fiber | Declarative 3D Rendering |
| Drei | Three.js Helper Components |
| Three.js | WebGL Rendering |
| Lucide React | Icons |
| Technology | Purpose |
|---|---|
| Next.js Server Actions | Backend Logic |
| Prisma ORM | Database Access |
| PostgreSQL | Relational Database |
| JWT | Authentication |
| Technology | Purpose |
|---|---|
| Neon | PostgreSQL Hosting |
| Cloudinary | Image Storage |
| Vercel | Application Hosting |
- Git
- GitHub
- VS Code
- npm
Aura Plan follows a modern full-stack architecture where Next.js handles both frontend rendering and backend logic, while Three.js powers the immersive virtual environments.
┌──────────────────────┐
│ User │
└──────────┬───────────┘
│
▼
Next.js 16 Application
│
┌───────────────────┼───────────────────┐
▼ ▼ ▼
React Interface Server Actions Authentication
│ │ │
└──────────────┬────┴───────────────────┘
▼
Prisma ORM
│
▼
PostgreSQL (Neon)
│
┌─────────────────┼─────────────────┐
▼ ▼ ▼
Cloudinary Images Room Metadata Hotspot Data
│
▼
React Three Fiber Scene
│
▼
Three.js Rendering Engine
│
▼
Interactive Virtual Tour
User
│
▼
Authentication
(Login / Register)
│
▼
Browse Properties
│
▼
Select Property
│
▼
Load Room Data
│
▼
3D Environment
│
├──────────────┐
▼ ▼
Interior View Exterior View
│ │
└──────┬───────┘
▼
Hotspot Navigation
│
▼
Virtual Property Tour
aura-plan/
│
├── prisma/
│ └── schema.prisma
│
├── public/
│
├── src/
│ ├── app/
│ │ ├── host/
│ │ ├── login/
│ │ ├── register/
│ │ ├── layout.tsx
│ │ └── page.tsx
│ │
│ ├── components/
│ │ ├── 3d/
│ │ ├── host/
│ │ ├── public/
│ │ └── ui/
│ │
│ └── lib/
│
├── package.json
└── tsconfig.json
| Home Page | Explore Properties |
|---|---|
![]() |
![]() |
| Property Details | Wishlist |
|---|---|
![]() |
![]() |
| Dashboard | My Properties |
|---|---|
![]() |
![]() |
| Edit Property | Property Rooms |
|---|---|
![]() |
![]() |
| Account Settings |
|---|
![]() |
| Step 1 — Room Dimensions | Step 2 — Surface Upload |
|---|---|
![]() |
![]() |
| Interior Preview | Cube Validation |
|---|---|
![]() |
![]() |
Aura Plan
https://aura-plan-tau.vercel.app
| Service | Platform |
|---|---|
| Frontend | Vercel |
| Backend | Next.js Server Actions (Vercel) |
| Database | Neon PostgreSQL |
| Image Storage | Cloudinary |
| Authentication | JWT |
Next: Installation, environment variables, project setup, 3D rendering workflow, server actions, deployment details, and application lifecycle.
Follow the steps below to run Aura Plan on your local machine.
Before getting started, make sure the following tools are installed:
- Node.js (v20 or later recommended)
- npm
- PostgreSQL
- Git
- Cloudinary Account
Verify your installation:
node -v
npm -v
git --version
psql --versiongit clone https://github.com/<your-github-username>/aura-plan.gitNavigate to the project directory:
cd aura-planInstall all required packages.
npm installAura Plan uses environment variables to securely configure the database, authentication, image storage, and backend services.
Create a .env file in the project root.
aura-plan/
│
├── .env
├── prisma/
├── src/
└── package.json
Example configuration:
DATABASE_URL=postgresql://username:password@localhost:5432/aura_plan
JWT_SECRET=your_jwt_secret
CLOUDINARY_URL=your_cloudinary_url
BLOB_READ_WRITE_TOKEN=your_blob_token| Variable | Description |
|---|---|
DATABASE_URL |
PostgreSQL database connection string |
JWT_SECRET |
Secret used for JWT authentication |
CLOUDINARY_URL |
Cloudinary upload configuration |
BLOB_READ_WRITE_TOKEN |
Token used for blob storage integration |
Important: Never commit
.envfiles or secret credentials to version control.
Aura Plan uses Prisma ORM with PostgreSQL.
Generate the Prisma Client:
npx prisma generateApply database migrations:
npx prisma migrate devIf you need to inspect your database:
npx prisma studioStart the application:
npm run devThe application will be available at:
http://localhost:3000
Open your browser and visit:
http://localhost:3000
Aura Plan follows the modern Next.js App Router architecture, separating routing, reusable components, database models, and 3D rendering logic.
aura-plan/
│
├── prisma/
│ └── schema.prisma
│
├── public/
│
├── src/
│
│ ├── app/
│ │
│ ├── host/
│ │
│ ├── login/
│ │
│ ├── register/
│ │
│ ├── layout.tsx
│ │
│ └── page.tsx
│
│ ├── components/
│ │
│ ├── 3d/
│ │
│ ├── host/
│ │
│ ├── public/
│ │
│ └── ui/
│
│ └── lib/
│
├── package.json
└── tsconfig.json
The following diagram illustrates the overall application lifecycle.
Launch Application
│
▼
Authentication
(Login / Register)
│
▼
Browse Properties
│
▼
Open Property
│
▼
Load Room Data
│
▼
Initialize 3D Scene
│
▼
Explore Virtual Tour
Aura Plan uses JWT Authentication together with a PostgreSQL-backed user database.
- User creates an account.
- Credentials are validated.
- Password is securely stored.
- User record is created.
- Registration completes successfully.
- User submits credentials.
- JWT token is generated.
- Authentication session begins.
- Protected routes become accessible.
Visitors can:
- Browse published properties
- Explore virtual tours
- Save favorite listings
Hosts can:
- Create properties
- Manage rooms
- Upload textures
- Configure hotspots
- Publish virtual tours
Hosts can build complete virtual properties through an interactive workflow.
Create Property
│
▼
Add Property Details
│
▼
Create Rooms
│
▼
Configure Dimensions
│
▼
Upload Room Textures
│
▼
Add Navigation Hotspots
│
▼
Publish Property
Aura Plan renders immersive virtual rooms using Three.js and React Three Fiber.
Open Property
│
▼
Load Room Metadata
│
▼
Retrieve Texture URLs
│
▼
Load Images
(TextureLoader)
│
▼
Generate Room Geometry
│
▼
Apply Six Textures
│
▼
Render Scene
Each room is generated dynamically using:
- Width
- Length
- Height
- Viewing Height
- Six texture images
Desktop users experience a game-like navigation system.
Mouse Click
│
▼
Pointer Lock
│
▼
Keyboard Input
(WASD / Arrow Keys)
│
▼
Camera Movement
│
▼
Collision Detection
│
▼
Updated Position
Mobile devices automatically switch to touch-friendly controls.
Touch Input
│
▼
Virtual Joystick
│
▼
Movement Vector
│
▼
Camera Rotation
│
▼
Scene Update
This ensures the virtual tour remains accessible across touch-enabled devices.
Rooms are connected using interactive hotspots.
Approach Hotspot
│
▼
Pointer Hover
│
▼
Click Hotspot
│
▼
Target Room Lookup
│
▼
Load New Room
│
▼
Continue Virtual Tour
Users can switch from immersive navigation to an architectural overview.
The cube viewer allows users to:
- Rotate the room
- Inspect all six surfaces
- Understand room orientation
- Preview uploaded textures
OrbitControls provide smooth camera movement around the room model.
Aura Plan prevents visitors from moving outside room boundaries.
Every animation frame:
- Camera position is evaluated
- Room dimensions are checked
- Boundary limits are enforced
- Invalid movement is blocked
This creates a more realistic walkthrough experience.
Room textures are loaded securely before rendering.
Texture URL
│
▼
Validation
│
▼
Cloudinary
│
▼
TextureLoader
│
▼
GPU Texture
│
▼
Room Surface
Invalid or unavailable assets automatically fall back to placeholder textures, helping prevent rendering failures.
Aura Plan uses Next.js Server Actions to handle backend logic directly within the application.
Server-side responsibilities include:
- User authentication
- Database queries
- Property creation
- Room management
- Hotspot configuration
- Image upload handling
- Data validation
This architecture removes the need for a separate Express backend while keeping server logic secure and centralized.
React Components
│
▼
Server Actions
│
▼
Prisma ORM
│
▼
PostgreSQL (Neon)
│
▼
Cloudinary
│
▼
Updated Response
│
▼
React State
│
▼
Three.js Scene Update
Aura Plan is deployed using a modern cloud-native architecture.
Platform
- Vercel
Live URL
https://aura-plan-tau.vercel.app
Backend functionality is implemented using:
- Next.js Server Actions
- Next.js App Router
- Vercel Serverless Functions
No separate backend server is required.
Development
- Local PostgreSQL
Production
- Neon PostgreSQL
| Service | Purpose |
|---|---|
| Cloudinary | Texture & image storage |
| Vercel | Frontend & server actions |
| Prisma ORM | Database access |
Users
│
▼
Vercel Deployment
│
┌─────────────┼─────────────┐
▼ ▼
Next.js Frontend Server Actions
│ │
└─────────────┬─────────────┘
▼
Prisma ORM
│
▼
PostgreSQL (Neon)
│
▼
Cloudinary
│
▼
React Three Fiber Scene
│
▼
Interactive Virtual Tour
Several architectural decisions improve the security and stability of the platform.
- JWT-secured authentication
- Protected host management routes
- Prisma ORM for safe database operations
- Environment variable isolation
- Cloudinary-secured image uploads
- Server-side rendering of protected operations
- Texture validation before rendering
- Automatic fallback textures for invalid assets
- Collision detection to maintain scene integrity
Aura Plan supports all major modern browsers.
- ✅ Google Chrome
- ✅ Microsoft Edge
- ✅ Mozilla Firefox
- ✅ Brave
- ✅ Opera
- ✅ Safari
Aura Plan adapts to a wide variety of devices.
Supported platforms include:
- Desktop
- Laptop
- Tablet
- Mobile
The application automatically switches between desktop controls and touch-friendly navigation to deliver a consistent virtual touring experience.
Next: UI highlights, 3D engine architecture, virtual tour workflow, technical implementation, roadmap, contributing, license, acknowledgements, and project footer.
Aura Plan is designed to provide an immersive, intuitive, and responsive experience that bridges traditional real estate listings with interactive 3D visualization. Every interface is built to keep users focused on exploring properties while giving hosts powerful tools to create virtual experiences.
Aura Plan adopts a clean and contemporary interface built with usability in mind.
Highlights include:
- ✨ Minimal and distraction-free layouts
- 🎨 Consistent design system
- 🪟 Modern card-based interface
- 📱 Fully responsive layouts
- 🌙 Elegant typography and spacing
- ⚡ Fast page transitions
Visitors can browse available properties through a clean listing interface designed for quick discovery.
Features include:
- Property cards
- Cover images
- Property descriptions
- Location information
- Interactive navigation
- Responsive layouts
Hosts have access to a dedicated management dashboard where they can build complete virtual experiences.
Dashboard capabilities include:
- Create properties
- Manage listings
- Configure rooms
- Upload room textures
- Edit room dimensions
- Publish virtual tours
- Manage hotspots
The room builder transforms physical room measurements into interactive 3D environments.
Hosts can configure:
- Width
- Length
- Height
- Camera viewing height
- Wall textures
- Floor textures
- Ceiling textures
The workflow is designed to be simple while still allowing detailed customization.
Aura Plan provides an immersive navigation experience inspired by modern 3D games.
Desktop users benefit from:
- Pointer Lock Controls
- Mouse Look
- WASD Navigation
- Smooth camera movement
- Natural exploration
This creates a realistic feeling of walking inside the property.
The platform automatically adapts to mobile devices.
Mobile optimizations include:
- Virtual joystick
- Touch camera rotation
- Responsive controls
- Optimized layouts
- Touch-friendly interactions
This ensures the virtual tour remains accessible without requiring external controllers.
Rooms are connected using intuitive navigation hotspots.
Users can:
- Walk toward hotspots
- Hover over labels
- Click navigation points
- Instantly move between rooms
This creates a seamless room-to-room exploration experience.
Aura Plan also offers an exterior cube visualization mode.
Users can:
- Rotate rooms
- Inspect textures
- Understand room orientation
- Preview room layouts
This provides additional spatial awareness beyond the first-person view.
Aura Plan combines several modern technologies to create browser-based immersive environments.
User Interaction
│
▼
React Components
│
▼
React Three Fiber
│
▼
Three.js Core
│
┌────────────────┼────────────────┐
▼ ▼ ▼
Camera System Texture Loader Lighting
│ │ │
└────────────────┼────────────────┘
▼
WebGL Rendering
│
▼
Interactive Scene
Every virtual room follows a structured rendering workflow.
Room Metadata
│
▼
Load Dimensions
│
▼
Load Surface Images
│
▼
Generate Geometry
│
▼
Apply Materials
│
▼
Initialize Camera
│
▼
Enable Controls
│
▼
Render Scene
Each room consists of six independently textured surfaces.
Front Wall
Back Wall
Left Wall
Right Wall
Ceiling
Floor
│
▼
Texture Loader
│
▼
Three.js Materials
│
▼
Room Mesh
This allows every room to accurately represent its real-world appearance.
Hotspots provide seamless navigation between rooms.
Current Room
│
▼
Hotspot Click
│
▼
Target Room Lookup
│
▼
Load New Room
│
▼
Camera Reset
│
▼
Continue Tour
Aura Plan continuously validates user movement.
Movement Input
│
▼
Camera Position
│
▼
Boundary Check
│
▼
Allowed?
│ │
Yes No
│ │
▼ ▼
Move Clamp Position
This prevents users from leaving the virtual environment while maintaining smooth navigation.
Aura Plan dynamically switches controls based on the detected device.
Application Start
│
▼
Device Detection
│
┌────┴────┐
▼ ▼
Desktop Mobile
│ │
Pointer Virtual
Lock Joystick
The interface automatically adapts without requiring manual configuration.
The complete virtual tour lifecycle can be summarized as follows.
User Opens Property
│
▼
Retrieve Property
│
▼
Load Room
│
▼
Load Textures
│
▼
Initialize Scene
│
▼
Explore Room
│
▼
Interact with Hotspots
│
▼
Load Connected Room
│
▼
Continue Tour
Aura Plan combines modern frontend rendering with scalable backend services.
- Next.js 16 App Router
- React 19
- TypeScript
- Tailwind CSS v4
- React Three Fiber
- Drei
- Three.js
- Responsive UI
- Next.js Server Actions
- JWT Authentication
- Prisma ORM
- Secure database operations
- Cloudinary integration
- PostgreSQL
- Prisma relational models
- Cascade relationships
- Optimized queries
- Structured room data
- Three.js
- React Three Fiber
- OrbitControls
- PointerLockControls
- TextureLoader
- WebGL
- Perspective Camera
- Collision detection
- Vercel
- Neon PostgreSQL
- Cloudinary
Aura Plan was developed to explore the intersection of modern web development and interactive 3D graphics.
Throughout the project, key concepts explored include:
- Browser-based 3D rendering
- WebGL fundamentals
- React Three Fiber
- Three.js scene management
- Interactive virtual environments
- Camera systems
- Collision detection
- Spatial navigation
- Next.js App Router
- Prisma ORM
- PostgreSQL
- JWT Authentication
- Cloud image management
- Responsive interaction design
The project demonstrates how modern JavaScript technologies can be combined to build immersive digital experiences entirely within the browser.
Aura Plan provides a strong foundation for browser-based virtual property visualization, with several enhancements planned for future releases.
- Multi-floor properties
- Floor plan visualization
- Interactive minimap
- AI-generated room descriptions
- Voice-guided tours
- VR headset support
- AR property previews
- Real-time collaborative tours
- Live host walkthrough sessions
- Furniture placement tools
- Measurement tools
- Search & filtering
- Property analytics dashboard
- Saved virtual tours
- Favorites synchronization
- Image optimization pipeline
- Offline asset caching
- Docker deployment
- CI/CD automation
- Multi-language support
Contributions, ideas, and feedback are always welcome.
If you'd like to contribute:
Create your own copy of the repository.
git clone https://github.com/your-username/aura-plan.gitgit checkout -b feature/amazing-featureImplement your feature or improvement.
git commit -m "Add amazing feature"git push origin feature/amazing-featureSubmit a Pull Request describing your improvements.
Bug reports and feature suggestions are greatly appreciated.
Helpful reports include:
- Steps to reproduce
- Expected behavior
- Actual behavior
- Browser information
- Device information
- Screenshots or recordings
If you found Aura Plan interesting or useful, consider giving the repository a ⭐ on GitHub.
Your support helps the project reach more developers and encourages future improvements.
This project is released under the MIT License.
You are free to:
- Use
- Modify
- Learn from
- Share
- Build upon
while preserving the original license.
Note: If your repository does not yet include a
LICENSEfile, GitHub allows you to add the MIT License directly from the repository settings.
A huge thank you to the open-source community and the technologies that made Aura Plan possible.
Special thanks to:
- Next.js
- React
- TypeScript
- Three.js
- React Three Fiber
- Drei
- Tailwind CSS
- Prisma ORM
- PostgreSQL
- Neon
- Cloudinary
- Vercel
- Lucide React
- Git
- GitHub
These technologies provided the foundation for building a modern, immersive virtual property platform.
Current Status: Active
Aura Plan is fully functional, deployed, and continuously evolving.
This project was created to explore how modern web technologies can deliver immersive 3D experiences through browser-based virtual environments. It combines interactive graphics, scalable backend architecture, and responsive design into a practical real-world application.
As I continue learning, I plan to expand Aura Plan with richer visualization features, enhanced collaboration tools, and more advanced spatial interactions.
Building Aura Plan has been an exciting opportunity to explore the intersection of full-stack web development and real-time 3D graphics.
From designing immersive virtual walkthroughs with Three.js and React Three Fiber to implementing secure authentication, relational data modeling, and cloud-based asset management, every stage of development deepened my understanding of interactive web applications.
Aura Plan reflects my passion for creating engaging user experiences and experimenting with emerging technologies that push the boundaries of what can be achieved in the browser.













