Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
91 changes: 91 additions & 0 deletions Submissions_SOSE_2026/proposal-team-hanagabrielle.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
# Proposal Submission — SOSE 2026

---

## Team Details* 👥

**Mentor's Name:** Hana Gabrielle Bidon

**Team Members:**

| GitHub Username | Full Name |
|-----------------|----------------------|
| @Danyccsf | Dany Valverde Caldas |

---

## p5.js Issue* 📋

- **Link to the issue:** [#9041](https://github.com/processing/p5.js/issues/9041)

- Issue Title: Benchmark cleanup passes `p5.model` to `freeGeometry`

- Repository: p5.js

---

## Abstract* 📝

My proposal fixes a reproducible benchmark-cleanup defect in p5.js. During local testing, I found that `freeGeometry()` received the `myp5.model` function reference instead of the geometry instance created by `buildGeometry()`, emitting a Friendly Error System (FES) validation message while the benchmark continued. The scoped change passes the generated `shape` instance to `freeGeometry()` and is verified through the affected benchmark. PR [#9071](https://github.com/processing/p5.js/pull/9071) was reviewed and merged by p5.js maintainer Dave Pagurek.

---

## Problem Statement* 📑

In `test/bench/cpu_transforms.bench.js`, the cleanup call passed `myp5.model`—a function reference—to `freeGeometry()` rather than the `shape` geometry instance. This invalid API usage emitted an FES validation message while the benchmark continued to report results. Passing `shape` instead removes the observed message in isolated WebGL and WebGPU benchmark runs. Contributors and maintainers need the benchmark to execute its intended cleanup call correctly while evaluating CPU-transform behavior.

---

## Proposed Solution* 💡

I submitted the verified one-line correction in `test/bench/cpu_transforms.bench.js`:

```js
myp5.freeGeometry(shape);
```

I validated the change by running the targeted CPU-transforms benchmark in its WebGL and WebGPU configurations, confirming that the prior FES validation message no longer appeared. This narrow approach directly corrected the reported defect and followed the maintainer’s request to create Issue #9041 before opening a PR.

---

## Research on old issues and Maintainer Patterns* 🔭

Issue [#8953](https://github.com/processing/p5.js/issues/8953) documents ongoing work on p5.strands transformation support across graphics backends. It is relevant background for the project’s graphics direction, but this proposal does not implement its assigned transformation-matrix work.

I also reviewed [#8887](https://github.com/processing/p5.js/pull/8887), which modularized the Friendly Error System. My benchmark finding shows that invalid API usage can emit an FES validation message while a benchmark still passes. I will not assume that all FES messages should globally fail benchmarks; this proposal corrects the specific misuse tracked in [#9041](https://github.com/processing/p5.js/issues/9041).

---

## Impact* 🛠️

- [X] **Bug Fix** — Corrects a verified invalid `freeGeometry()` call in `cpu_transforms.bench.js`.
- [X] **Testing** — Verifies the correction through the affected WebGL and WebGPU benchmark runs.

---

## Inclusivity and Accessibility 🤝

Not applicable — bug fix.

---

## Implementation Plan* ⏳

- **Week 5 (Completed)**: Reproduced the benchmark message, identified the incorrect argument, and prepared the one-line correction.
- **Week 6 (Completed)**: Discussed the finding with @davepagurek and created Issue [#9041](https://github.com/processing/p5.js/issues/9041) as requested.
- **Week 7 (Completed)**: Submitted PR [#9071](https://github.com/processing/p5.js/pull/9071), ran targeted WebGL/WebGPU benchmark validation, and received maintainer review.
- **Week 8**: Document the merged result in the final technical presentation and update portfolio materials.

---

## Deliverables* 📦

- Merged PR [#9071](https://github.com/processing/p5.js/pull/9071) correcting the cleanup call in `test/bench/cpu_transforms.bench.js`.
- Targeted benchmark results for the WebGL and WebGPU configurations showing that the prior FES message no longer appears.
- Public Issue [#9041](https://github.com/processing/p5.js/issues/9041) documenting the benchmark-cleanup defect.

---

## Anything Else?

I discussed the finding with @davepagurek in the p5.js Discord before opening Issue [#9041](https://github.com/processing/p5.js/issues/9041). Dave Pagurek confirmed that `shape` was the correct argument, reviewed PR [#9071](https://github.com/processing/p5.js/pull/9071), commented “Thanks for the update, looks good!”, and merged the fix into `processing:main`. After the merge, Dave also requested contributor credit through the all-contributors bot, and PR [#9075](https://github.com/processing/p5.js/pull/9075) added @Danyccsf to the p5.js contributors list for testing.