-
-
EcoLens dashboard: Configure a location, available budget, and solar preference to begin an environmental assessment.
-
Environmental assessment: EcoLens combines current environmental conditions and short-term forecast data for the selected location.
-
Decision engine: Interventions are scored using environmental opportunity, impact, affordability, and implementation feasibility.
-
Intervention ranking: Compare potential interventions and see how the decision engine ranks each option.
-
Scenario analysis: Change the available budget and see how the recommendation, score, and intervention ranking respond.
-
Location and evidence: View the assessment location and distinguish environmental measurements from model estimates.
Inspiration
Environmental dashboards can show a lot of information, but I wanted to build something that went one step further: What should someone actually do with that information? That question led me to EcoLens. A location can have high temperatures, poor air quality, changing precipitation, or strong solar potential, but knowing those conditions is only part of the problem. The next question is what intervention makes sense given the environmental conditions and the resources available. I wanted to build a project that connected those two things.
What I Built
EcoLens is an environmental decision-support application built with Python and Streamlit. A user selects a location, sets an available budget, and can choose whether to consider solar. The application retrieves environmental conditions and short-term forecast information and evaluates several possible interventions. The decision engine scores interventions using four main factors:
- Environmental opportunity
- Environmental impact
- Affordability
- Implementation feasibility The interventions are then ranked, and the highest-scoring feasible option becomes the recommendation. The goal is not to simply show another environmental dashboard. It is to help turn environmental information into a decision.
Scenario Analysis
One of the main features I built is the scenario analysis system. Instead of giving the user one fixed recommendation, EcoLens lets them change the available budget and see how the decision responds. The application recalculates the intervention ranking, opportunity score, estimated cost, estimated savings, and recommendation. It also identifies an approximate budget threshold where another intervention becomes more competitive. This lets the user explore questions such as: "What would change if I had more resources?"
AI
I intentionally separated the AI from the core decision-making. The recommendation is generated by a deterministic scoring system. After the decision is made, the AI receives the decision results and explains them in natural language. The explanation describes why the intervention was selected, which factors influenced the decision, and what should be validated before implementation. This was an important design choice because I did not want the AI to act as a black-box decision maker. The AI explains the decision; it does not secretly make the decision.
How I Built It
The application is written in Python and uses Streamlit for the web interface. Open-Meteo provides environmental and forecast data, while Pandas is used for data processing and Plotly is used for visualizations. I separated the application into modules for:
- Environmental data
- Decision scoring
- Recommendations
- Scenario analysis
- AI explanations The application is deployed as a live Streamlit web application and the source code is available on GitHub.
Challenges
One of the biggest challenges was making the different parts of the application work together while keeping the decision logic separate from the AI. I also had to work through issues with application state, API integration, deployment, and keeping the scenario analysis responsive when the user changed the budget. Another challenge was making the results understandable. Calculating a score is not enough if the user cannot understand why the recommendation was made. That led me to build the intervention ranking, scenario comparison, decision threshold, evidence section, and AI explanation layer.
What I Learned
Building EcoLens taught me a lot about designing applications where AI is only one part of a larger system. I learned that an AI application does not necessarily need to let the model make every decision. In EcoLens, deterministic logic provides consistency while the AI makes the result easier to understand. I also learned more about working with external APIs, building interactive Streamlit applications, managing application state, deploying a project, and organizing a multi-file Python application.
Environmental Impact
EcoLens is designed to help users compare environmental interventions while taking resource constraints into account. The application can help make tradeoffs between environmental opportunity, cost, impact, and feasibility easier to see. For example, an intervention with strong environmental potential may not be practical if it significantly exceeds the available budget. EcoLens makes that constraint part of the decision instead of treating environmental impact and cost separately. The current intervention costs, savings, and impact values are demonstration estimates, so they would need to be replaced or validated with site-specific data before the system could be used for real investment decisions.
What's Next
EcoLens is currently a prototype. A future version could incorporate more detailed building information, utility rates, local incentives, historical environmental data, and more accurate intervention cost and impact models. The longer-term goal would be to make the decision engine useful with real site-specific information while keeping the reasoning behind each recommendation transparent.
Log in or sign up for Devpost to join the conversation.