EarthSensor provides air pollution and weather information for cities around the world.
The app fetches data from the Aqicn REST API and presents it in a user-friendly format using graphs.
EarthSensor is a web application that allows users to search for a city and retrieve detailed information about its current air quality and weather conditions. The app visualizes the data using graphs and provides a 3D globe, built with ThreeJS, displaying stations with AQI (air quality index) levels higher than the norm.
This project was a way for me to learn a few cool libraries and frameworks that I have been eyeing out for a while. I wanted to try NextJS 13 and its routing, its SEO friendly ways and its SSR. It was a fun challenge to learn it and I feel confident in my skill with NextJS 13.
I had a lot of fun learning about THREE.JS and how to model dynamic data using vectors and geometries.
This project was also a great opportunity to include Tailwind CSS in order to make styling a bit faster, especially since I already had a lot to process learning WebGL. I also expanded my knowlege with React and Typescript with this project.
- Search for a city to access real-time air quality and weather information.
- Interactive 3D globe visualization highlighting stations with higher AQI levels.
- User-friendly graphs presenting air pollution data in a visually appealing manner.
Check out the live demo of EarthSensor here.
- React
- Next.js
- TypeScript
- Tailwind CSS
- Three.js
- GSAP
- Aqicn API
- Unsplash API
- Mapbox
To run EarthSensor locally, follow these steps:
- Clone the repository:
git clone https://github.com/VasaOfficial/EarthSensor.git - Install the dependencies:
cd earth-sensor && npm install - Add
.envand based on the env.mjs file add your API keys. - Start the development server:
npm run dev - Open
http://localhost:3000in your browser.
Contributions are welcome! If you'd like to contribute to EarthSensor, please follow these steps:
- Fork the repository.
- Create a new branch:
git checkout -b feature/my-feature. - Commit your changes:
git commit -am 'Add some feature'. - Push to the branch:
git push origin feature/my-feature. - Open a pull request.
Special thanks to the creators and contributors of the libraries, frameworks, and APIs used in this project.
Distributed under the MIT License.


