Skip to content

[p5.strands] Reenabling and implementing FES in strands #7899

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
2 of 17 tasks
lukeplowden opened this issue Jun 10, 2025 · 0 comments
Open
2 of 17 tasks

[p5.strands] Reenabling and implementing FES in strands #7899

lukeplowden opened this issue Jun 10, 2025 · 0 comments

Comments

@lukeplowden
Copy link
Member

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:

  1. FES prints a lot of warnings about overriding p5.js variables.
  2. FES will also give warnings coming from _validateParameters, since it expects the core function signature. For example, if you use sin(10) in strands, it will be converted to sin(dynamicNode(10)), and the actual received arg will not be of type Number. FES will therefore warn that sin expects a number. This is also the case for atan() which GLSL allows 1 or 2 arguments for, whereas p5.js only allows one.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Open for Discussion
Development

No branches or pull requests

1 participant