From 6b88e148be8aa56a4e5d5a4c871080f53af4b829 Mon Sep 17 00:00:00 2001 From: divyap Date: Tue, 24 Mar 2026 13:25:12 +0530 Subject: [PATCH] docs: add page builder implementation and screenshot --- README.md | 32 +++++++++++++++++++++++++------- assets/builder_screenshot.png | Bin 0 -> 41377 bytes 2 files changed, 25 insertions(+), 7 deletions(-) create mode 100644 assets/builder_screenshot.png diff --git a/README.md b/README.md index 4fc3c5f..094a272 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,17 @@ -# 🧊 Cube Scene +# Cube Scene -The same interactive 3D cube scene built two ways — **Vanilla Three.js** and **React Three Fiber (R3F)** — to compare the approaches side by side. +The same interactive 3D cube scene built three ways — **Vanilla Three.js**, **React Three Fiber (R3F)**, and **Page Builder** — to compare the approaches side by side. -## ✨ Features +## Features -- Two rotating orange cubes +- Two rotating cubes - Hover effect — cubes turn **hotpink** on hover - Click to scale (R3F version) - OrbitControls — rotate, zoom, and pan the camera - Responsive window resize - Light gray background with ambient + point lighting -## 📁 Project Structure +## Project Structure ``` cube-scene/ @@ -32,7 +32,7 @@ cube-scene/ └── .gitignore ``` -## 🚀 Getting Started +## Getting Started ### Vanilla Three.js @@ -50,7 +50,7 @@ npm install npm run dev ``` -## 🔍 Vanilla vs R3F Comparison +## Vanilla vs R3F Comparison | Feature | Vanilla Three.js | React Three Fiber | |---|---|---| @@ -61,6 +61,24 @@ npm run dev | OrbitControls | Import, instantiate, call `update()` | `` | | Window resize | Manual `resize` event listener | Automatic | +## Page Builder Implementation (Divya's Team) + +Beyond the manual code, I also implemented the cube scene using a **Page Builder** environment under **Divya's Team**. + +### Builder Workflow +The builder allows for a hierarchical "Layers" view (as seen in the screenshot below) where I could: +- Add `mesh` containers for each cube. +- Add `ambientLight` and `pointLight`. +- Nest `boxGeometry` and `meshStandardMaterial` inside the meshes. +- Enable `OrbitControls` by dragging them into the scene. + +### Current Limitations +While the builder is great for static scenes and hierarchy management, there are some current technical limitations: +- **Continuous Animation**: Making the cubes "always rotate" on every frame (like the code-based versions) is currently not supported in the builder's interface. +- **Dynamic Interaction**: The "hover effect" (changing colors on mouse enter/leave) cannot yet be implemented directly within the builder's node system. + +![Builder Screenshot](./assets/builder_screenshot.png) + ## 🛠️ Tech Stack - [Three.js](https://threejs.org/) — 3D rendering library diff --git a/assets/builder_screenshot.png b/assets/builder_screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..9f74bd65a8b3f8094981c627855c85f2c4a8929e GIT binary patch literal 41377 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 literal 0 HcmV?d00001