Skip to content

Commit 7e7c5de

Browse files
committed
docs: add GSoC'26 introductory blog and author profile
1 parent c607428 commit 7e7c5de

7 files changed

Lines changed: 172 additions & 0 deletions

File tree

18.1 KB
Loading
58.6 KB
Loading
19.6 KB
Loading
78 KB
Loading
24 KB
Loading
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
---
2+
name: "Shubham Sharma"
3+
slug: "shubham-sharma"
4+
title: "GSoC'26 Contributor"
5+
organization: "SugarLabs"
6+
description: "GSoC'26 Contributor at SugarLabs"
7+
avatar: "https://avatars.githubusercontent.com/u/115340955?v=4"
8+
---
9+
10+
<!--markdownlint-disable-->
11+
12+
# About Shubham Sharma
13+
14+
I'm Shubham, a CS graduate and open-source contributor. I've been contributing to Sugar Labs since December 2025, primarily to Music Blocks, sugar-toolkit-gtk3, and sugar-toolkit-gtk4. This summer I'm working on AI Reflection in the Sugar Journal for GSoC 2026.
15+
16+
## Connect with Me
17+
18+
- **GitHub**: [@vyagh](https://github.com/vyagh)
19+
- **Email**: [vyagh.vy@gmail.com](mailto:vyagh.vy@gmail.com)
20+
- **Matrix**: [@vyagh:matrix.org](https://matrix.to/#/@vyagh:matrix.org)
21+
- **LinkedIn**: [Shubham Sharma](https://www.linkedin.com/in/vyagh)
22+
- **Twitter**: [@vyagh_vy](https://twitter.com/vyagh_vy)
23+
- **Discord**: [vyagh](https://discord.com/users/vyagh)
Lines changed: 149 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,149 @@
1+
---
2+
title: "GSoC '26 Introductory Blog by Shubham Sharma"
3+
excerpt: "Building AI-powered reflection into the Sugar Journal"
4+
category: "DEVELOPER NEWS"
5+
date: "2026-05-23"
6+
slug: "2026-05-23-gsoc-26-vyagh-week00"
7+
author: "@/constants/MarkdownFiles/authors/shubham-sharma.md"
8+
description: "GSoC'26 Contributor at SugarLabs (AI Reflection in the Sugar Journal)"
9+
tags: "gsoc26,sugarlabs,week00,vyagh,ai-reflection,journal"
10+
image: "assets/Images/GSOCxJournal.webp"
11+
---
12+
13+
<!-- markdownlint-disable -->
14+
15+
**Project:** AI Reflection in the Sugar Journal
16+
**Mentors:** [Walter Bender](https://github.com/walterbender), [Ibiam Chihurumnaya](https://github.com/chimosky)
17+
**Assisting Mentors:** [Diwangshu Kakoty](https://github.com/diwangshu-kakoty), [Mebin J Thattil](https://github.com/mebinthattil), [Harshit Verma](https://github.com/therealharshit)
18+
19+
---
20+
21+
## `whoami`
22+
23+
Hey, I'm Shubham ([@vyagh](https://github.com/vyagh)), a CS graduate and open-source contributor from India. I'll be working on AI Reflection in the Sugar Journal this summer for GSoC 2026.
24+
25+
I got my first computer when I was 10, a Dell Inspiron N5050 (I still have it). I have this clear memory of mentally keeping a list of things I wanted to search on Google throughout the school day, because the laptop was obviously at home. Anyone who knows me well enough knows that I ask a _lot_ of questions, about everything, and that habit hasn't really changed.
26+
27+
That curiosity is basically why I ended up in CS, and why I keep going toward AI projects. There's always something to figure out. So when I was going through the GSoC ideas list and saw an AI project under Sugar Labs, it got my attention pretty quickly.
28+
29+
## How I got here
30+
31+
I've been contributing since December 2025, mostly to [musicblocks](https://github.com/sugarlabs/musicblocks), [sugar-toolkit-gtk3](https://github.com/sugarlabs/sugar-toolkit-gtk3), and [sugar-toolkit-gtk4](https://github.com/niccokunzmann/sugar-toolkit-gtk4).
32+
33+
The weekly meetings and conversations with Jonas on Matrix about constructionism changed how I think about this project. Something he said stuck with me, he was describing how he sometimes comes across as wise, but said it's really just _"the input triggering a reflection."_
34+
35+
That's what the reflection buddy should do: give the kid a good question and get out of the way.
36+
37+
---
38+
39+
## The Project
40+
41+
Sugar has three design verbs: **Share**, **Discover**, and **Reflect**. The first two have proper software behind them. But reflecting? It's basically an empty text box in the Journal that most kids never fill.
42+
43+
An 8-year-old doesn't spontaneously write "I learned that loops make spirals more efficient." They need someone to ask them about it. Learning involves stumbling and getting stuck, and reflection is how kids process that, but it doesn't happen on its own without some kind of prompt.
44+
45+
This project adds a **reflection panel** inside the Journal detail view. When a kid opens a Journal entry, a reflection buddy asks things like _"What was the trickiest part?"_ or _"What would you try differently?"_. The AI doesn't explain things or give answers, it asks questions. The kid leads the conversation.
46+
47+
I built a rough prototype before submitting my proposal to get a feel for how this interaction might work:
48+
49+
- **Demo video:** [youtu.be/jCWb7yUrnZA](https://youtu.be/jCWb7yUrnZA)
50+
- **Prototype:** [journal-reflection-demo.vercel.app](https://journal-reflection-demo.vercel.app)
51+
52+
![Prototype reflection panel showing a conversation between AI and a child about a Turtle Art project](/assets/Developers/vyagh/prototype.webp)
53+
54+
---
55+
56+
## Discussions During Community Bonding
57+
58+
I've been having calls with Walter during the bonding period, and the conversations went way beyond what's in the proposal. A lot of these are open design questions, and a big reason I'm writing about them here is that Devin actually uses Sugar in classrooms with real children, so we really need his take.
59+
60+
### Solo or collaborative reflection?
61+
62+
Sugar is collaborative, kids work with each other and teachers. So should reflection be collaborative too?
63+
64+
We mapped out a few modes:
65+
66+
- **Child + AI**: one-on-one reflection (the core proposal)
67+
- **Child + peer + AI**: peer conversations that naturally become reflective (my conversations with Jonas are kind of a proof of concept for this, just not with kids)
68+
- **Multiple children + teacher + AI**: classroom-style reflection
69+
70+
Open question: should everyone share a single chat, or should each participant have their own? Probably needs real classroom testing.
71+
72+
### Personas and the teaching skill
73+
74+
Starting with one generic reflection buddy. But the system should support activity-specific personas later, like imagine reflecting with Bobby Fischer after a chess activity (Walter liked this idea from Diwangshu's Music Blocks reflection work).
75+
76+
The interesting part was the idea of a **skills-file creator**: a way to define what a persona should know about a particular activity. A Turtle Art persona would understand "angle" and "repeat", a Write persona would focus on narrative and structure.
77+
78+
There's a layer that should wrap _every_ persona though: a teaching skill that makes sure the AI always asks questions, never lectures, regardless of which persona is active.
79+
80+
The "Sugar Activity on Demand" GSoC project also focuses on AI for activities, so there might be overlap. Something to coordinate on.
81+
82+
### Guardrails
83+
84+
We definitely need guardrails to keep conversations safe and on topic. But if reflection gets too rigid, it just becomes a form, and you don't need AI for a form.
85+
86+
I know this from experience, I've tried structured approaches to learning many times and they never worked for me. The moment something feels like a checklist, I stop engaging. Jonas put it well: _"constructionism is about learning, not training."_ If guardrails turn reflection into something that feels like a test, it's training, not learning. It should feel closer to play than to homework.
87+
88+
### Who writes the description?
89+
90+
The Journal has a description field that sits empty in almost every entry. Should the AI just generate it? That guarantees it's not empty, but the child didn't write it. It's like solving math on a calculator: you get the answer, but you didn't learn to think about the problem.
91+
92+
Asking kids to write from scratch doesn't work either, most just skip it.
93+
94+
The proposal's middle ground: after the conversation, show the child their own best answer and ask _"Want to save this as your description? You can edit it."_ Walter also raised the value of an AI-generated summary for younger kids. Another question for Devin.
95+
96+
### Offline mode
97+
98+
Sugar activities were designed to work without an internet connection, and some deployments only have a local network. So reflection can't just stop when there's no connectivity.
99+
100+
The proposal includes **Reflection Sparks**: 50+ curated reflection prompts that work without any AI backend. Not adaptive like the AI, but they still follow the same reflection approach. When connectivity comes back, the AI picks up from there.
101+
102+
On a related note, I've been experimenting with reflection questions in GitHub PR templates so contributors think about their changes before submitting. Different audience, same idea.
103+
104+
### Future directions
105+
106+
Some things we discussed that go beyond core scope:
107+
108+
- **Video descriptions**: Sugar devices have cameras. A kid could record themselves explaining what they made instead of typing
109+
- **Multiple previews**: multiple screenshots or a recording/GIF per entry would give more context for reflection
110+
111+
![Journal detail view showing a single small preview thumbnail with an empty description field](/assets/Developers/vyagh/journal-preview.webp)
112+
113+
- **Reflecting inside the activity**: Walter emphasized being able to **bounce back and forth between the Journal and the activity**, so reflection shouldn't feel like a separate destination
114+
115+
![Write Activity with a description box accessible directly inside the activity](/assets/Developers/vyagh/activity-description.webp)
116+
117+
---
118+
119+
## Quick Technical Overview
120+
121+
- **Frontend**: Python/GTK3, reflection panel inside `expandedentry.py`, packed between CommentsView and Buddy List
122+
- **Backend**: Two FastAPI endpoints on Sugar-AI (`/reflect/chat` and `/reflect/summary`), stateless, client sends full history each request
123+
- **Storage**: `metadata['reflections']`, same pattern as `metadata['comments']`, via D-Bus. No schema changes needed
124+
- **Offline**: Reflection Sparks prompt bank, zero hardware requirements
125+
126+
---
127+
128+
## What's Ahead
129+
130+
Coding starts May 25. Dev environment is ready: QEMU VM for source-level development, and that old Dell Inspiron for real hardware testing:
131+
132+
- 2GB RAM
133+
- can go offline
134+
- low enough specs to catch performance issues early
135+
136+
The plan is to get a basic end-to-end flow working as soon as possible:
137+
open a Journal entry -> see a reflection question -> reply -> get a follow-up
138+
139+
I'll be sharing progress in weekly blog posts :)
140+
141+
![Dell Inspiron N5050 running Sugar's Home View on Lubuntu](/assets/Developers/vyagh/dell-laptop.webp)
142+
143+
---
144+
145+
## Acknowledgments
146+
147+
Thanks to Walter for the bonding period conversations that shaped the thinking in this post.
148+
To [Jonas](https://wiki.debian.org/JonasSmedegaard) for months of discussions that helped me understand what reflection actually means in a constructionist context.
149+
To Ibiam and Devin for the organizational support, Diwangshu for the Music Blocks reflection foundation, and to the Sugar Labs community for being welcoming since I showed up in December.

0 commit comments

Comments
 (0)