
https://carbon-cloud-chat-21c0d88f.base44.app
Today, as a thought experiment, I used AI to develop a carbon-aware AI chatbot that actively discourages the use of AI and guides users toward lower-carbon alternatives, or encourages them not to use the AI at all. I have been working on several modules related to UX and sustainability in the digital arts this year, and the ecological impact of AI is a key concern. This is a work in progress, and I will use this app as a point of discussion in my lectures.
I am aware of the meta irony here: I used AI (Basse44, with one primary design prompt and 20 further iterations, plus a few hours of testing) to build an AI that advises people not to overuse AI. That raises some questions I’d like to explore with students:
Omnipresence and normalisation of AI: Are we quietly normalising AI as the default medium, even for critiquing AI?
If we make AI “more sustainable”, are we inviting people to use even more of it?
What is a good use of AI? Can spending some carbon now (to build this tool) be justified if it helps many people reduce low-value, high-carbon AI usein the future?
I would love to hear whether this kind of experiment piques your interest, and how you’d handle the tension between using AI and questioning its ecological footprint.
The carbon calculation, as a rough approximation of the actual impact, is challenging to calculate, as it. Depending on the computer the user is using and the context.
https://carbon-cloud-chat-21c0d88f.base44.app
Key Features:
Visual Carbon Tracking
- Animated cloud icon at the top shows real-time CO2 emissions
- Counter continuously grows (idle: 0.003g/100ms, generating: 0.08g/100ms)
- Rising carbon dots speed up during AI generation
- Each AI response displays its specific CO2 cost
Carbon Advisory System
- Intercepts medium/high-impact prompts BEFORE generating
- Shows estimated CO2 cost of the full answer
- Categorises impact: low (direct response), medium (moderately complex), high (large/lazy requests)
- Presents non-AI alternatives first:
- Library visits and librarians
- Reading books
- Pen and paper drafting
- Web searches
- Talking to experts/people
- Manual research
- If user insists on AI, offers lower-carbon AI options
- Options: use low-carbon mode, proceed anyway, or cancel (saves carbon)
AI Behavior
- Always gives MINIMAL answers (2-4 sentences max)
- Questions if user really needs AI for this
- Varies suggestions: web search, library, books, asking people, articles, videos, hands-on work
- Pushes back on vague/unspecific prompts
- Encourages users to do more work themselves
- Every response has minimum 0.3g CO2 cost
Special Handling
- Detects “lazy” prompts (homework, write my book, plan my life)
- Strongly pushes back with offline alternatives and learning-focused responses
- Inital Promt:
-
Build a minimal web app called “Carbon Cloud Chat” – a carbon-aware AI chatbot.
Overall goals:
– Let users chat with an AI assistant.
– Make the **carbon impact of their prompts highly visible**, playful, and educational.
– Encourage users to rephrase or scale down heavy requests before the AI does lots of work.Layout & style:
– No sidebar. Simple, focused, single-column layout.
– Center of the page: an **animated “carbon cloud” widget** that shows live carbon usage.
– Below the cloud: the **chat interface** (user messages and AI responses).
– Minimalist UI: soft neutral background, high contrast text, no clutter.
– Responsive: should look good on desktop and mobile.Carbon cloud widget (always visible, fixed near the top center):
– A cloud icon or blob with gentle animation (pulsing or drifting).
– Inside or just below it:
– **“Current prompt emissions”** in grams of CO₂e, counting up live while a response is generating.
– **“Session total”** in grams, showing the sum of all prompts in this chat.
– The **number in grams should always be changing**, as if “the carbon clock is always ticking”:
– While the app is idle (no prompt being processed), the number increases very slowly (e.g. tiny baseline rate).
– When a user submits a prompt and the AI is “thinking”, the number **ticks up rapidly** to simulate higher compute.
– After a response finishes, the “current prompt” counter should stop increasing and the prompt’s contribution is added to the session total.
– Use a simple heuristic for emissions (no real API needed): for example, estimate grams based on:
– Length/complexity of the user’s request.
– Length of the AI response.
– You can approximate with “tokens” or “characters”; this can be a fake but consistent formula.Chat behaviour (carbon-aware flow):
1. User types a message in a chat input at the bottom (standard chatbot UI).
2. When they send a prompt:
– The AI **does NOT immediately generate the full final answer.**
– First, the AI estimates how “heavy” the request is (low/medium/high) and shows a **“carbon advisory” message**.
– The animated cloud starts ticking up quickly while the estimate is calculated.3. **Carbon advisory message format** (before generating the full content):
– A short intro like:
– “ Estimated impact: High. This request will generate a lot of text and use more compute.”
– Or “ Estimated impact: Low. This is a light request.”
– Show a rough number, e.g.:
– “Estimated for full answer: ~X grams CO₂e”
– Then suggest **lower-carbon alternatives**:
– For big tasks (e.g. “write a 300-page book” or “give me 200 ideas”), suggest:
– A shorter version.
– An outline first, then refine.
– Doing it in small batches.
– For broad/vague tasks (e.g. “tell me everything about climate change”), suggest:
– Narrowing the scope.
– Asking 2–3 specific questions.
– Finally, present clear choices as buttons or links under the advisory, for example:
– “Proceed with full answer (higher carbon)”
– “Use a lower-carbon alternative (recommended)”
– “Cancel”4. Only after the user chooses:
– If they pick **“lower-carbon alternative”**, generate a **shorter, more efficient answer** and update the carbon counters accordingly.
– If they pick **“proceed with full answer”**, generate the full response; during generation, the carbon cloud number **rapidly increases** until the answer is complete.
– If they **cancel**, don’t generate any answer; maybe show a small “ You just saved carbon by cancelling this request.” message.Chat messages:
– Display user messages and AI messages in a standard chat bubble format.
– Each AI response should:
– Start with a small **carbon summary line**, like:
– “This answer used approximately 3.2 g CO₂e for generation.”
– Then show the actual useful content (summary, outline, code, etc.).
– Optionally end with a tiny tip like:
– “Tip: Next time, you can ask for an outline first to reduce emissions.”Example behaviours to encode:
– If user says: “Write me a 300-page book about cats”:
– Show “💨 Estimated impact: High (full answer ~XX g CO₂e)” and suggest:
– Outline + sample chapter.
– 10-page mini-book.
– One focused chapter.
– If user says: “Give me 200 business ideas in detail”:
– Suggest fewer, higher-quality ideas or batch mode (e.g. 5 at a time).
– If user asks something small like “Explain solar panels in 3 bullets”:
– Show “ Estimated impact: Low (~0.X g CO₂e)” and proceed directly with a brief answer.Interaction details:
– The cloud widget must **update in real time** with a smoothly changing number (not just jump).
– Keep all carbon numbers clearly labelled as **“estimated”**.
– Include a small info icon near the cloud that opens a tooltip explaining:
– That the carbon figures are rough estimates.
– That more compute / more text = higher estimated emissions.Technical notes (for the generator):
– Use whatever front-end stack you prefer (e.g. React) with a modern, clean design.
– Implement state for:
– Current prompt emission estimate.
– Session total emissions.
– Whether the AI is currently “thinking” (to adjust clock speed).
– The logic for estimating emissions can be simple but must be **consistent** across prompts.Overall feel:
– Friendly, educational, non-guilt-tripping.
– Encourages **smarter, smaller, iterative prompts**.
– The animated carbon cloud should make users constantly aware of the impact of their AI use in a playful, visual way.