Skip to content

Instantly share code, notes, and snippets.

@suvanbanerjee
Last active August 31, 2025 09:59
Show Gist options
  • Select an option

  • Save suvanbanerjee/f7085a03c5d0062062b13721518214ff to your computer and use it in GitHub Desktop.

Select an option

Save suvanbanerjee/f7085a03c5d0062062b13721518214ff to your computer and use it in GitHub Desktop.

GSoC 2025 Final Report: Cloudcasting UI

Organization: Open Climate Fix

Project Overview

Open Climate Fix's recent Cloudcasting model can predict cloud movements very accurately but for end users, it’s hard to see or visualize the results, this project creates a new dashboard similar to the quartz-frontend that is already up and running, to visualize results from the Cloudcasting model the dashboard will be build using Next.js and MapBox as a base map layer, Sentry to log errors, and a minimal FastAPI server written in python to preprocess Zarr data to muntiple GEO-TIF's and serve it to the frontend.

Core Goals

  1. A functional and visually appealing UI to show the cloud movement on the map
  2. Ability to move forward and backward in time through a timeline
  3. A minimal server to fetch data from the ML Model and process and pass it to the frontend
  4. Sentry to log errors and report them
  5. Auth0 Authentication [Shared with Quartz Solar]

Why Is This Work Important?

  • Enables Visualization of Critical Climate Data: The Cloudcasting UI makes the highly accurate cloud movement predictions from Open Climate Fix's model accessible and understandable to end-users. By providing a clear visual representation, it allows for better comprehension and utilization of complex climate data, which is crucial for decision-making related to solar energy forecasting.

  • Supports Renewable Energy Integration and Grid Stability: Accurate cloudcasting is vital for predicting solar irradiance, which directly impacts solar power generation. By visualizing these predictions, the Cloudcasting UI helps grid operators, energy companies, and researchers better anticipate fluctuations in solar energy supply. This improves the integration of renewable energy into the national grid, enhances grid stability, and reduces reliance on fossil fuels.

  • Facilitates Further Research and Development: The project provides a functional and visually appealing front-end, along with a minimal, efficient backend for data processing and serving. This robust foundation can serve as a proof-of-concept and a starting point for further development, allowing Open Climate Fix to expand its visualization capabilities and explore new features for climate modeling and energy forecasting.

  • Promotes Open Source Contribution and Community Engagement: As an open-source project, the Cloudcasting UI encourages community involvement and contributions. By building a user-friendly and well-documented system, it lowers the barrier to entry for developers interested in contributing to climate tech, fostering collaboration and accelerating innovation in the field of renewable energy and environmental monitoring.

What Was Done

  1. Cloudcasting Frontend Development gsoc-cloudcasting-ui
  • Built a comprehensive Next.js application for visualizing cloud movement predictions
  • Implemented interactive mapping using Mapbox GL to display satellite imagery and cloud layers
  • Created time-series visualization with 15-minute intervals up to 3 hours ahead forecasting
  • Developed support for different satellite spectral bands (IR, VIS, WV channels)
  1. Authentication System - Auth0
  • Integrated Auth0 authentication with Next.js and FastAPI
  • Shared authentication system with existing Quartz Solar infrastructure
  • Added proper token management and authorization headers for API communication
  1. Backend API Development gsoc-cloudcasting-api
  • Built a FastAPI server to process and serve cloudcasting data
  • Implemented data preprocessing pipeline to convert Zarr format to GeoTIFF files
  • Created efficient API endpoints for fetching cloud layer data by variable and time step
  1. Dockerization & Deployment
  • Docker Compose configurations for easy local development and production deployment
  • Set up environment configuration management for different deployment environments
  • The project is hosted on OCF's infrastructure, using Render for the backend and Vercel for the frontend
  1. Testing & Documentation README
  • Implemented automated testing for the FastAPI backend using pytest
  • Added test cases for API endpoints to ensure data integrity and error handling
  • Documented data models and endpoint schemas for maintainability

What is NOT done / Future Scope

The project has met all its primary goals/objectives defined in the original proposal, but as software goes it's never perfect. I have opened several issues in the repositories about improvements that will be done after GSoC, as I also plan to maintain the project for a long time and take it from an MVP to a full-fledged end product.

Some issues are [as of writing the report]

  • Currently the API is async but the generation process is still a synchronous process; some improvements are needed to speed up the build or processing phase.
  • I have implemented Loguru for logging, but the way other OCF projects do it is a bit different. Loguru works for now, but in the future I want to change it to match the other APIs and standardize across the organization.
  • The overall API structure is a bit overkill for the limited functionality, so simplifying the structure can make it more readable.

More issues can be found on GitHub Issues

Current State

The project is in a robust state with deployed backend, a fully functional dashboard. Users can now easily login and view the app, visualize real-time cloudcasting data.

Depoyed Link - https://cloudcasting.quartz.solar/

Demo Video (Dashboard)

cloudcasting_demo.mp4

Contributions

Over the course of the project, I worked across two repositories, contributing a total of +24,580 −1,644 lines of code.

The numbers include initial boilerplate from setting up Next.js and FastAPI, but a large portion reflects core features and functionality I implemented.

Challenges and Learnings

  • Auth0 Implementation: For most of my projects, I had always used other authentication services, but learning Auth0 was a great experience. It accelerates cross-platform authentication and is easy to set up. I will definitely consider it as my go-to method for implementing authentication in future projects as well.

  • API Development: I have developed APIs a few times before, but building them for production taught me many new things such as proper error handling, using cache and temporary storage effectively, and ensuring the code is robust while providing 100% uptime.

  • Meteorology: In my GSoC project, I had to learn a lot about meteorology and the geography of Earth. It was a fun experience exploring Earth projections, different types of satellite data, how clouds are measured, and how they are plotted in real-life applications. I also developed algorithms to convert data from one format to another (geospatial reprojection).

  • User Experience (UI/UX): In the initial stages of the project, I created a few Figma designs to lay out how users would interact with the system. My goal was to make it simple enough so users could understand what the site does within 10 seconds. This taught me a lot about UI/UX concepts such as the T-model of visual scanning, user focus patterns, and improving accessibility.

  • Balancing Scope and Delivery: My initial plan was to build an event-driven system that integrated well with the AWS ecosystem. However, as the project progressed and after brainstorming with my mentor, we decided to implement it as a polling-based system instead. polling-based approach would be more reliable given the constraints of data availability, processing intervals, and infrastructure costs. Transitioning to a polling-based system required rethinking the architecture, scheduling mechanisms, and performance optimization strategies. This experience taught me how to adapt to changing requirements while ensuring timely delivery

Conclusion

This GSoC summer was a transformative journey that pushed me out of my comfort zone. Working on the Cloudcasting UI wasn’t just about building software it was about diving into new domains and coming out with a fresh perspective on climate tech and renewable energy. The technical challenges were tough but rewarding, from learning meteorological data processing to building production-ready systems. What stood out most was seeing how this project connects cutting-edge machine learning research to real-world applications that can help accelerate renewable energy adoption. Every line of code felt like a small step toward fighting climate change through better solar forecasting. Collaborating with my mentors taught me how to balance ambitious ideas with practical delivery, and seeing the deployed app at https://cloudcasting.quartz.solar/ makes me super happy at what i have achived in last summer :D

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment