My interactive 3D portfolio experience built with Unity, designed as a functional operating system interface. Explore my work through a virtual desktop environment featuring a Unix-style terminal, project showcases, and immersive 3D navigation.
Interactive desktop environment with applications and settings
Terminal interface with portfolio commands and system information
Free-look 3D navigation of the virtual environment
GitHub repository showcase with real-time data
- Unix-style command-line interface with 20+ commands
- Real portfolio data integration (education, experience, skills, achievements)
- Command history navigation with up/down arrow keys
- Direct links to GitHub, LinkedIn, and live resume
- System commands:
uname,date,uptime,hostname,pwd,ls,cat,echo - Portfolio commands:
about,education,experience,skills,achievements,techstack
- OS Mode: Focused desktop interface for browsing projects and using the terminal
- Explore Mode: Free-look 3D navigation of the virtual environment
- Seamless transitions with smooth camera tweening and FOV adjustments
- Cursor lock/hide management for optimal UX in each mode
- GitHub repository showcase with real-time data from GitHub API
- Local JSON caching for WebGL compatibility (CORS workaround)
- Hackathon timeline with event details and project links
- Cache-busting mechanisms for fresh data retrieval
- Volume control with dB conversion for AudioMixer
- "Disable 3D" mode for accessibility (OS-only experience)
- Persistent settings using PlayerPrefs
- Mobile support with click-to-focus interaction
- Aspect ratio-aware camera positioning for screen quad rendering
- Custom cursor management system independent of script lifecycle
- Responsive UI with TextMeshPro and Unity UI components
- Manual JSON parsing for complex nested data structures
- Engine: Unity 2025.1
- UI: TextMeshPro, Unity UI (Canvas, ScrollRect, Layout Groups)
- Networking: UnityWebRequest for API calls
- Data: JSON parsing, PlayerPrefs persistence
- Audio: AudioMixer with logarithmic volume conversion
- Deployment: WebGL with CORS handling
Assets/
├── Scripts/
│ ├── CameraFocusToggle.cs # Dual-mode camera system
│ ├── CameraLookAround.cs # Free-look navigation
│ ├── ClickToFocus.cs # Mobile click interaction
│ ├── CursorManager.cs # Centralized cursor control
│ ├── DragHandler.cs # UI dragging functionality
│ ├── FitScreenToCamera.cs # Aspect ratio handling
│ ├── HackathonTimeline.cs # Timeline data fetching
│ ├── Projects.cs # GitHub repo display
│ ├── Redirects.cs # URL opening utilities
│ ├── SettingsManager.cs # Settings persistence
│ ├── TerminalSystem.cs # Command-line interface
│ └── TimelineItem.cs # Timeline UI component
├── Data/
│ └── github_projects.json # Cached GitHub data
├── Scenes/
│ └── SampleScene.unity # Main scene
├── Materials/ # Visual materials
└── UI/ # UI assets
- Unity 2025.1 or later
- TextMeshPro package (installed via Package Manager)
-
Clone the repository:
git clone https://github.com/altf4-games/PortfoliOS.git
-
Open the project in Unity Hub
-
Open
Assets/Scenes/SampleScene.unity -
Press Play to run in the Unity Editor
- Go to File > Build Settings
- Select WebGL platform
- Click "Switch Platform"
- Click "Build" and choose output directory
- Host the build files on a web server
Portfolio Information:
about- Introduction and overvieweducation- Educational backgroundexperience- Work experienceskills- Core technical competenciestechstack- Complete technology stackachievements- Awards and recognitionswhoami- User identity
Navigation:
linkedin- Open LinkedIn profilegithub- Open GitHub profileresume- Fetch and open latest resumeescape- Toggle between OS and Explore modes
System Commands:
help- List all available commandsclear- Clear terminal outputfortune- Random developer quoteuname- OS informationdate- Current date and timeuptime- System uptimehostname- System hostnamepwd- Working directoryls- List directory contentscat [file]- Display file contentsecho [text]- Display text
OS Mode:
- Type commands in terminal
- Click UI elements
- Press Escape to enter Explore Mode
Explore Mode:
- Mouse drag to look around
- Press Escape to return to OS Mode
- Click the computer (mobile) to return to OS Mode
- GitHub Projects:
https://api.github.com/users/altf4-games/repos - Resume URL:
https://code-snip.vercel.app/raw/100 - Hackathon Timeline:
https://code-snip.vercel.app/raw/101
All endpoints use cache-busting with timestamp query parameters.
Pradyum Mistry
- GitHub: @altf4-games
- LinkedIn: pradyum-mistry
This project is available under the MIT License.