Inspiration

Walking into my 11th-grade classrooms, I realized how much energy, water, and infrastructure goes into a single day of education. We read about global warming in textbooks, but our own campuses remain a black box of emissions. I wanted to build EcoLens-AI to bridge this gap. By turning the campus into a _ living lab _, we can directly address UN SDG 4 and SDG 13. Students shouldn't just be passive learners; they need the tools to become active, data-driven stewards of their environment.

EcoLens-AI Data Flow Concept

What it does

EcoLens-AI is a sustainability intelligence platform that maps the hidden environmental footprint of a school. It takes inputs like student population, daily transportation methods, energy grids, and green cover, and processes them to generate actionable climate risk assessments and step-by-step emission reduction roadmaps.

To calculate the base carbon footprint inline, we use the standard emission factor formula where total emissions \( E_{total} \) equals the sum of activity data multiplied by specific emission factors: \( E_{total} = \sum (Act_i \times EF_i) \).

For the broader campus risk assessment, our AI processes the data through a weighted environmental index:

$$ Risk_{index} = \frac{\alpha(E_{grid}) + \beta(T_{transit}) + \gamma(W_{waste})}{\delta(G_{cover})} $$

How we built it

The web application is engineered for high performance and technical minimalism. The frontend is built using Next.js and Tailwind CSS, integrating custom liquid transitions and dynamic components using Framer Motion to make the data visually striking.

For the backend data logic, rather than relying solely on generic cloud APIs, I integrated an open-source Gemma AI model running locally via Ollama. This allowed the platform to securely process localized school data and generate the reduction roadmaps without exposing sensitive campus infrastructure details.

Here is a quick look at how we structure the API route for the sustainability calculations:

export default async function handler(req, res) {
  const { energy, transport, waste, greenCover } = req.body;

  // Initialize local AI model connection
  const ai_response = await generateRoadmap(energy, transport);

  const riskIndex = calculateRisk(energy, transport, waste, greenCover);

  res.status(200).json({ 
    risk: riskIndex, 
    roadmap: ai_response,
    status: "Success"
  });
}

Built With

Share this project:

Updates

Submission history