Skip to content

Commit d3d0d0f

Browse files
committed
cleanup
1 parent 894fb30 commit d3d0d0f

5 files changed

Lines changed: 60 additions & 831 deletions

File tree

README.md

Lines changed: 60 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,60 @@
1-
# java-idl.github.io
2-
Link Page
1+
# Javagar's Project Nexus
2+
3+
**Current Version**: 2.0 (The Command Center)
4+
5+
An immersive 3D visualization of project links, designed as a futuristic interface. It features a rotating point cloud of nodes that users can navigate, search, and interact with to preview external projects seamlessly.
6+
7+
---
8+
9+
## Development Report
10+
11+
### Phase I: The Core Foundation
12+
The project began as a standard 3D visualization experiment. The initial implementation utilized a basic "floating interactive sphere" concept.
13+
- **Architecture**: A pure Vanilla Javascript implementation using HTML5 Canvas for rendering. No heavy 3D libraries (like Three.js) were used; instead, a custom 3D projection engine was written to keep the application lightweight (~15KB).
14+
- **Data-Driven**: The system was designed to be data-agnostic, loading project nodes dynamically from a `links.yaml` file.
15+
16+
### Phase II: The Audit & Optimization
17+
Upon initial review, several critical deficiencies were identified in the codebase:
18+
1. **Performance**: A busy-wait loop was detected. The animation loop continued running even when the 3D view was hidden, consuming unnecessary CPU cycles. This was patched by implementing state-aware loop cancellation.
19+
2. **Accessibility**: The application lacked basic ARIA labels, making it unusable for screen readers. A comprehensive accessibility pass added semantic roles (`role="img"`, `role="list"`) and keyboard navigation support (J/K keys).
20+
21+
### Phase III: The Paradigm Shift
22+
The most significant evolution occurred during the UI/UX review.
23+
- **The Problem**: The original floating header overlay blocked the view of the sphere, and the "Glassmorphism" aesthetic deemed outdated.
24+
- **The Pivot**: A "Design Overhaul" was proposed, offering three directions. The **"Command Center"** concept was selected.
25+
- **Implementation**:
26+
- The layout was fundamentally restructured. The floating UI was moved to a fixed **Sidebar (320px)** on the left.
27+
- The structural borders were changed from Gold to a sleek Dark Gray (`#333`) to reduce visual fatigue, reserving Gold for high-value accents.
28+
- The 3D Canvas logic was rewritten to offset the "center of the world" by 320px, ensuring the sphere rotates perfectly in the available negative space, not the center of the viewport.
29+
30+
### Phase IV: Integration Mechanics
31+
The final hurdle was the "Preview Pane" experience, specifically regarding **Custom Cursors** on external sites.
32+
- **The Glitch**: When opening external projects (like *HackerAndSleeper*) in the iframe preview, their custom cursor logic failed, rendering the cursor invisible.
33+
- **Diagnosis**: It was discovered that:
34+
1. The `.iframe-loader` overlay was consuming mouse events even when transparent.
35+
2. Global `user-select: none` rules on the parent page were bleeding into the iframe's internal logic.
36+
3. The iframe was not receiving focus, leaving the child site in a "suspended" animation state.
37+
- **The Solution**:
38+
- **Pointer Events**: Explicitly set `pointer-events: none` on the loader.
39+
- **Focus Injection**: Implemented logic to force `iframe.contentWindow.focus()` upon load.
40+
- **Style Isolation**: Reverted global interaction locks, applying them only to specific UI parent elements.
41+
42+
---
43+
44+
## Technical Features
45+
- **Custom 3D Engine**: Zero-dependency 3D projection.
46+
- **YAML Data Source**: Easy-to-edit project list.
47+
- **Sidebar Architecture**: Fixed-width sidebar with mathematically unified canvas resizing.
48+
- **Optimized Rendering**: Distance-squared calculations for connection drawing to minimize `Math.sqrt` calls.
49+
50+
## Quick Start
51+
52+
1. **Add Projects**: Edit `links.yaml`.
53+
```yaml
54+
- text: "My Project"
55+
url: "https://mywebsite.com"
56+
```
57+
2. **Run**:
58+
```bash
59+
python -m http.server 8000
60+
```

index_minimal.html

Lines changed: 0 additions & 72 deletions
This file was deleted.

index_sidebar.html

Lines changed: 0 additions & 78 deletions
This file was deleted.

0 commit comments

Comments
 (0)