Focus is a web-based application that visualizes chemical elements in 3D, providing an interactive way to learn and explore atomic structures. Built as a static site with modern web technologies including Three.js for 3D rendering.
🔗 Live Demo: https://alanmaizon.github.io/focus/
- Interactive 3D atomic visualization — see protons, neutrons, and electrons in motion
- 110+ elements from the periodic table with accurate atomic data
- Electron shell animation with orbital rings and tilted paths
- Element info panel showing atomic number, protons, neutrons, electrons, and electron configuration
- Modern dark theme with responsive design for all screen sizes
- Keyboard support — press Enter to visualize after typing a symbol
- Zero backend required — runs entirely in the browser as a static site
- Enter the symbol of an element in the input field (e.g.,
Fe,Au,U). - Click Visualize or press Enter.
- View the 3D atomic model in the interactive modal.
- Use mouse controls to rotate, zoom, and pan the 3D model.
- Read element details in the info card below the periodic table.
-
Clone the repository:
git clone https://github.com/alanmaizon/focus.git cd focus -
Serve the static files with any HTTP server:
# Using Python python3 -m http.server 8000 # Or using Node.js npx serve .
-
Open your browser and go to
http://localhost:8000.
focus/
├── index.html # Main HTML page (static)
├── static/
│ ├── css/
│ │ └── styles.css # Application styles
│ ├── js/
│ │ └── script.js # 3D visualization & UI logic
│ └── img/
│ ├── periodic_table.png
│ └── n.jpg
├── .github/
│ └── workflows/
│ └── deploy.yml # GitHub Pages deployment workflow
└── README.md
This project is deployed automatically to GitHub Pages via GitHub Actions.
- Every push to the
mainbranch triggers deployment. - The workflow uploads the repository as a static site artifact and deploys it.
- No build step is required — the site is served directly as static files.
To set up GitHub Pages on your fork:
- Go to Settings → Pages in your repository.
- Under Source, select GitHub Actions.
Contributions are welcome! Please follow these steps:
- Fork the repository.
- Create a new branch (
git checkout -b feature/your-feature). - Make your changes.
- Commit your changes (
git commit -m 'Add your feature'). - Push to the branch (
git push origin feature/your-feature). - Open a Pull Request.
This project is licensed under the MIT License.
