[p5.strands] Reenabling and implementing FES in strands
Open
@Ayush4958 is already working on this.
Since Aug 27, 2026.
Enhancement
Friendly Errors
p5.strands
- Dominant language
- JavaScript
- Stars
- 24k
- Forks
- 3.8k
- Avg merge
- 3d 16h
- Merged PRs (30d)
- 25
Description
Increasing access
FES is a core part of making p5.js approachable, but it is currently disabled in p5.strands
Most appropriate sub-area of p5.js?
- Accessibility
- Color
- Core/Environment/Rendering
- Data
- DOM
- Events
- Image
- IO
- Math
- Typography
- Utilities
- WebGL
- Build process
- Unit testing
- Internationalization
- Friendly errors
- Other (specify if possible)
Feature enhancement details
p5.strands disables FES entirely whilst it compiles the user's code to GLSL. This is because there are some functions with shared scope and name clashes, in p5.strands and the core p5.js library... see #7849. This causes two types of false negatives, to my knowledge:
- FES prints a lot of warnings about overriding p5.js variables.
- FES will also give warnings coming from
_validateParameters, since it expects the core function signature. For example, if you usesin(10)in strands, it will be converted tosin(dynamicNode(10)), and the actual received arg will not be of type Number. FES will therefore warn thatsinexpects a number. This is also the case foratan()which GLSL allows 1 or 2 arguments for, whereas p5.js only allows one.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.