Skip to content

Commit 56bc06a

Browse files
authored
Merge branch 'main' into main
2 parents b394ff0 + 5b4b727 commit 56bc06a

16 files changed

+2495
-541
lines changed
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
---
2+
name: "Safwan Sayeed"
3+
slug: "safwan-sayeed"
4+
title: "Maintainer and GSoC'25 Contributor"
5+
organization: "SugarLabs"
6+
description: "Maintainer and GSoC'25 Contributor at SugarLabs"
7+
avatar: "https://avatars.githubusercontent.com/u/111475221?s=400&u=084aa7be2ae3aedd1cf38175557820a49b7efa93&v=4"
8+
---
9+
10+
<!--markdownlint-disable-->
11+
12+
# About Safwan Sayeed
13+
14+
Safwan is a dedicated maintainer and Google Summer of Code 2025 contributor at SugarLabs, working primarily on the Music Blocks 4 Program Engine development. With a passion for educational technology and open-source development, Safwan contributes to making programming more accessible to learners worldwide.
15+
16+
## Experience
17+
18+
- **GSoC 2025**: Music Blocks 4 Program Engine development
19+
- **SugarLabs Maintainer**: Active contributor to various projects
20+
21+
## Current Projects
22+
23+
- Music Blocks 4 Program Engine
24+
- SugarLabs website development
25+
26+
27+
## Connect with Me
28+
29+
- **GitHub**: [@sa-fw-an](https://github.com/sa-fw-an)
30+
- **Email**: [[email protected]](mailto:[email protected])
31+
- **LinkedIn**: [Safwan Sayeed](https://linkedin.com/in/safwan-sayeed-6a3a482a9)
32+
- **Twitter**: [@safwan_say](https://twitter.com/safwan_say)
33+
- **Website**: [safwansayeed.dev](https://safwansayeed.dev)
34+
- **Discord**: [safwan#1234](https://discord.com/users/safwan#1234)
Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
1+
---
2+
title: "JavaScript Editor Updates"
3+
excerpt: "This is a Template to write Blog Posts for weekly updates"
4+
category: "DEVELOPER NEWS"
5+
date: "2025-06-07"
6+
slug: "JSeditor-updates"
7+
author: "Elwin Li"
8+
description: "GSoC Contributor"
9+
tags: "gsoc25,sugarlabs,week1,javaScript editor"
10+
image: "assets/Images/GSOC.png"
11+
---
12+
13+
<!-- markdownlint-disable -->
14+
15+
# Week 1 Progress Report by Elwin Li
16+
17+
**Project:** [Advanced JavaScript Editor with MusicBlocks Interactions](https://github.com/sugarlabs/musicblocks/tree/gsoc-2025/elwin)
18+
**Mentors:** [Walter Bender](https://github.com/walterbender), [Anindya Kundu](https://github.com/meganindya), [Devin Ulibarri](https://github.com/pikurasa)
19+
20+
**Reporting Period:** 2025-06-02 - 2025-06-07
21+
22+
---
23+
24+
## Goals for This Week
25+
26+
- **Goal:** Complete and deploy code to blocks functionality.
27+
28+
---
29+
30+
## This Week’s Achievements
31+
32+
**Refactored code to be config driven**
33+
I refactored my code for code to block conversion to use a JSON config file so that the logic behind the conversion is as generic as possible.
34+
An example config for a block is shown below:
35+
36+
{
37+
"name": "repeat",
38+
"comments": "Repeat block in the Flow palette",
39+
"arguments": [
40+
{
41+
"type": "NumberExpression"
42+
}
43+
],
44+
"ast": {
45+
"identifiers": [
46+
{
47+
"property": "type",
48+
"value": "ForStatement"
49+
}
50+
],
51+
"argument_properties": [
52+
"test.right"
53+
],
54+
"children_properties": [
55+
"body.body"
56+
]
57+
},
58+
"blocklist_connections": [
59+
"parent_or_previous_sibling",
60+
"argument",
61+
"first_child",
62+
"next_sibling"
63+
],
64+
"default_vspaces": {
65+
"argument": 1
66+
}
67+
}
68+
69+
This config is for the repeat block, as conveniently stated in the comments section for readability.
70+
There are several pieces of information we need for a block for the conversion code to work:
71+
- The name of the block
72+
- The number of arguments, and their types
73+
- The associated AST information
74+
- The identifiers, or the path to that block (needed for matching)
75+
- The paths to the argument and children properties from the AST
76+
- The connections the block has in the blocklist [parent/previous sibling, argument(s), child(ren), next sibling]
77+
- vspace information
78+
79+
Based on these pieces of information, the conversion code is generic enough to parse through and translate into blocklist format.
80+
This is very important because this means that adding a new block for support is now as simple as adding a config like this to the JSON file.
81+
82+
---
83+
84+
## Challenges & How I Overcame Them
85+
86+
- **Challenge:** Coming up with the config format.
87+
88+
**Solution:** Lots of trial and error, and using many different examples to make the code generic.
89+
90+
- **Challenge:** Argument handling was not working with configuration.
91+
92+
**Solution:** Added a separate section in the config file for argument blocks, but made it as close to other blocks as possible.
93+
94+
---
95+
96+
## Key Learnings
97+
98+
- Deepened understanding of JSON configuration files.
99+
- Improved skills in **debugging**, **code design**, and **collaboration workflows**.
100+
101+
---
102+
103+
## Next Week’s Roadmap
104+
105+
- Fully add all blocks that we want to support for code to block conversion, with corresponding documentation and error handling.
106+
- Move on to next phase of the JSeditor project, which is the debugger
107+
- Familiarize myself with the necessary files I will need to work with for the debugger
108+
- Work on getting breakpoints to work
109+
110+
---
111+
112+
## Acknowledgments
113+
114+
Thank you to my mentors, the Sugar Labs community, and fellow GSoC contributors for ongoing support.
115+
116+
---
117+
118+
## Connect with Me
119+
120+
- GitHub: [@ebeetles](https://github.com/ebeetles)
121+
122+
- LinkedIn: [Elwin Li](https://www.linkedin.com/in/elwinsli/)
123+
124+
---

src/constants/MarkdownFiles/posts/2025-06-08-gsoc-25-SafwanSayeed-week01.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@ excerpt: "Kickoff of Music Blocks 4 Program Engine development"
44
category: "DEVELOPER NEWS"
55
date: "2025-06-08"
66
slug: "2025-06-08-gsoc-25-sa-fw-an-week1"
7-
author: "Safwan Sayeed"
8-
description: "Maintainer and GSoC'25 Contributor at SugarLabs"
7+
author: "@/constants/MarkdownFiles/authors/safwan-sayeed.md"
98
tags: "gsoc25,sugarlabs,week1,sa-fw-an"
109
image: "assets/Images/GSOC.png"
1110
---
Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
---
2+
title: "GSoC ’25 Week 04 Update by Aditya Kumar Singh"
3+
excerpt: "localization for 3D Human Activity in Sugarizer, palette switcher, and skeletal improvements."
4+
category: "DEVELOPER NEWS"
5+
date: "2025-06-10"
6+
slug: "2025-06-10-gsoc-25-AdityaKrSingh26-week04"
7+
author: "Aditya Kumar Singh"
8+
description: "GSoC'25 Contributor at SugarLabs (Sugarizer Human Activity Pack)"
9+
tags: "gsoc25,sugarlabs,week04,AdityaKrSingh26"
10+
image: "assets/Images/GSOC.png"
11+
---
12+
13+
<!-- markdownlint-disable -->
14+
15+
# Week 04 Progress Report by Aditya Kumar Singh
16+
17+
**Project:** [Sugarizer](https://github.com/llaske/sugarizer)
18+
**Mentors:** [Lionel Laské](https://github.com/llaske)
19+
**Assisting Mentors:** [Samarth Bagga](https://github.com/SamarthBagga)
20+
**Reporting Period:** 2025-05-30 - 2025-06-05
21+
22+
---
23+
24+
## Goals for This Week
25+
26+
- **Goal 1:** Add a model selection palette UI to toggle between models.
27+
- **Goal 2:** Integrate the Human-body model into the paint activity and set the Human-body human model as the default view.
28+
- **Goal 3:** Refactor and improve naming conventions for bones in the skeleton model.
29+
- **Goal 4:** Localize the Human Body Activity using i18next.js, supporting English and French.
30+
31+
32+
---
33+
34+
## This Week’s Achievements
35+
36+
1. **Model Palette Implementation**
37+
- Developed a new model selection palette in the UI allowing users to switch between:
38+
- Human body
39+
- Skeleton
40+
- Organs
41+
- Set the Human body as the default model loaded on activity start.
42+
- Palette updates the 3D scene dynamically without requiring a full reload.
43+
![screenshot-description](https://i.ibb.co/SDSYFJf7/image.png)
44+
45+
46+
2. **Human-Body Model Paint Integration**
47+
- Integrated the Human body model with the interactive paint activity.
48+
- Ensured hierarchical structure for smooth interactivity and logical mesh grouping
49+
![screenshot-description](https://i.ibb.co/4wqNymfG/image.png)
50+
51+
52+
3. **Improved Bone Naming in Skeleton Model**
53+
- Refactored the skeletal model for accurate and educational naming:
54+
- Replaced generic labels like “Lower Leg” with specific names like **Tibia** and **Fibula**.
55+
- Split forearm into **Radius** and **Ulna**, adjusting geometry and mesh positions.
56+
57+
58+
59+
4. **Implemented i18next.js to support internationalization.**
60+
- Implemented **i18next.js** to support internationalization.
61+
- Completed full translation of Human Body Activity in **English** and **French**.
62+
- Translation files follow standard .json structure for easy future expansion.
63+
- Example image for French:
64+
![screenshot-description](https://i.ibb.co/99ggYBDj/image.png)
65+
66+
67+
---
68+
69+
## Challenges & How I Overcame Them
70+
71+
- **Challenge:** Naming skeleton bones accurately without anatomical overlap.
72+
**Solution:** Cross-referenced medical diagrams and validated model mesh mapping manually in Blender.
73+
74+
---
75+
76+
## Key Learnings
77+
78+
- Deepened understanding of scene management in Three.js and optimized mesh rendering for performance.
79+
- Gained experience in internationalization using i18next.js
80+
- Developed more precise anatomical terminology awareness and importance of educational clarity.
81+
82+
---
83+
84+
## Next Week’s Roadmap
85+
86+
- Write Weekly Blog Post summarizing progress, screenshots, and key learnings.
87+
- Fix Organs model. Distance between eyes and mouth seems to be more than required, reduce that and see if there is some alignment issue.
88+
- Integrate the full human body model into the paint activity to allow direct interaction and labeling across complete anatomy.
89+
- Merge Paint and Learn mode to show a popup at bottom of screen when user click a part
90+
91+
---
92+
93+
94+
## Acknowledgments
95+
96+
Thank you to my mentors, the Sugar Labs community, and fellow GSoC contributors for ongoing support.
97+
98+
---
99+
100+
## Connect with Me
101+
102+
- GitHub: [@AdityaKrSingh26](https://github.com/AdityaKrSingh26)
103+
104+
- LinkedIn: [Aditya Kumar Singh](https://www.linkedin.com/in/adityakrsingh26/)
105+
- Twitter: [@AdityaKrSingh26](https://x.com/AdityaKrSingh26)
106+
107+
---

0 commit comments

Comments
 (0)