It is a Golang library with bindings to use p5js in the browser from webassembly.
Here is a list of features that have already been implemented:
✅ Completed
✅describe()
✅describeElement()
✅textOutput()
✅gridOutput()
✅print()
✅frameCount
✅deltaTime
✅focused
✅cursor()
✅frameRate()
✅getTargetFrameRate()
✅noCursor()
✅webglVersion
✅displayWidth
✅displayHeight
✅windowWidth
✅windowHeight
✅windowResized()
✅width
✅height
✅fullscreen()
✅pixelDensity()
✅displayDensity()
✅getURL()
✅getURLPath()
✅getURLParams()
✴️ In progress (10/11)
✅alpha()
✅blue()
✅brightness()
✅color()
✅green()
✅hue()
✅lerpColor()
✅lightness()
✅red()
✅saturation()
⬜p5.Color
✅ Completed
✅beginClip()
✅endClip()
✅clip()
✅background()
✅clear()
✅colorMode()
✅fill()
✅noFill()
✅noStroke()
✅stroke()
✅erase()
✅noErase()
✅ Completed
✅arc()
✅ellipse()
✅circle()
✅line()
✅point()
✅quad()
✅rect()
✅square()
✅triangle()
✅ Completed
✅ellipseMode()
✅noSmooth()
✅rectMode()
✅smooth()
✅strokeCap()
✅strokeJoin()
✅strokeWeight()
⬜ In progress (0/9)
⬜bezier()
⬜bezierDetail()
⬜bezierPoint()
⬜bezierTangent()
⬜curve()
⬜curveDetail()
⬜curveTightness()
⬜curvePoint()
⬜curveTangent()
⬜ In progress (0/9)
⬜beginContour()
⬜beginShape()
⬜bezierVertex()
⬜curveVertex()
⬜endContour()
⬜endShape()
⬜quadraticVertex()
⬜vertex()
⬜normal()
⬜ In progress (0/12)
⬜beginGeometry()
⬜endGeometry()
⬜buildGeometry()
⬜freeGeometry()
⬜plane()
⬜box()
⬜sphere()
⬜cylinder()
⬜cone()
⬜ellipsoid()
⬜torus()
⬜p5.Geometry
⬜ In progress (0/2)
⬜loadModel()
⬜model()
✴️ In progress (10/12)
✅preload()
✅setup()
✅draw()
✅remove()
⬜disableFriendlyErrors
✅noLoop()
✅loop()
✅isLooping()
✅push()
✅pop()
✅redraw()
⬜p5()
⬜ In progress (0/25)
⬜p5.Element
⬜select()
⬜selectAll()
⬜removeElements()
⬜changed()
⬜input()
⬜createDiv()
⬜createP()
⬜createSpan()
⬜createImg()
⬜createA()
⬜createSlider()
⬜createButton()
⬜createCheckbox()
⬜createSelect()
⬜createRadio()
⬜createColorPicker()
⬜createInput()
⬜createFileInput()
⬜createVideo()
⬜createAudio()
⬜createCapture()
⬜createElement()
⬜p5.MediaElement
⬜p5.File
✴️ In progress (9/11)
⬜p5.Graphics
✅createCanvas()
✅resizeCanvas()
✅noCanvas()
✅createGraphics()
✅createFramebuffer()
✅clearDepth()
✅blendMode()
✅drawingContext
✅setAttributes()
⬜p5.Framebuffer
⬜ In progress (0/10)
⬜applyMatrix()
⬜resetMatrix()
⬜rotate()
⬜rotateX()
⬜rotateY()
⬜rotateZ()
⬜scale()
⬜shearX()
⬜shearY()
⬜translate()
⬜ In progress (0/38)
⬜deviceOrientation
⬜accelerationX
⬜accelerationY
⬜accelerationZ
⬜pAccelerationX
⬜pAccelerationY
⬜pAccelerationZ
⬜rotationX
⬜rotationY
⬜rotationZ
⬜pRotationX
⬜pRotationY
⬜pRotationZ
⬜turnAxis
⬜setMoveThreshold()
⬜setShakeThreshold()
⬜deviceMoved()
⬜deviceTurned()
⬜deviceShaken()
✅ Completed
✅keyIsPressed
✅key
✅keyCode
✅keyPressed()
✅keyReleased()
✅keyTyped()
✅keyIsDown()
✅ Completed
✅movedX
✅movedY
✅mouseX
✅mouseY
✅pmouseX
✅pmouseY
✅winMouseX
✅winMouseY
✅pwinMouseX
✅pwinMouseY
✅mouseButton
✅mouseIsPressed
✅mouseMoved()
✅mouseDragged()
✅mousePressed()
✅mouseReleased()
✅mouseClicked()
✅doubleClicked()
✅mouseWheel()
✅requestPointerLock()
✅exitPointerLock()
⬜ In progress (0/4)
⬜touches
⬜touchStarted()
⬜touchMoved()
⬜touchEnded()
⬜ In progress (0/4)
⬜createImage()
⬜saveCanvas()
⬜saveFrames()
⬜p5.Image
⬜ In progress (0/6)
⬜loadImage()
⬜saveGif()
⬜image()
⬜tint()
⬜noTint()
⬜imageMode()
⬜ In progress (0/8)
⬜pixels
⬜blend()
⬜copy()
⬜filter()
⬜get()
⬜loadPixels()
⬜set()
⬜updatePixels()
⬜ In progress (0/9)
⬜loadJSON()
⬜loadStrings()
⬜loadTable()
⬜loadXML()
⬜loadBytes()
⬜httpGet()
⬜httpPost()
⬜httpDo()
⬜p5.XML
⬜ In progress (0/6)
⬜createWriter()
⬜p5.PrintWriter
⬜save()
⬜saveJSON()
⬜saveStrings()
⬜saveTable()
⬜ In progress (0/2)
⬜p5.Table
⬜p5.TableRow
⬜ In progress (0/7)
⬜day()
⬜hour()
⬜minute()
⬜millis()
⬜month()
⬜second()
⬜year()
⬜ In progress (0/3)
⬜noise()
⬜noiseDetail()
⬜noiseSeed()
✅ Completed
✅textAlign()
✅textLeading()
✅textSize()
✅textStyle()
✅textWidth()
✅textAscent()
✅textDescent()
✅textWrap()
✴️ In progress (3/4)
✅loadFont()
✅text()
✅textFont()
⬜p5.Font
⬜ In progress (0/3)
⬜orbitControl()
⬜debugMode()
⬜noDebugMode()
⬜ In progress (0/10)
⬜ambientLight()
⬜specularColor()
⬜directionalLight()
⬜pointLight()
⬜imageLight()
⬜panorama()
⬜lights()
⬜lightFalloff()
⬜spotLight()
⬜noLights()
✴️ In progress (14/15)
✅loadShader()
✅createShader()
✅createFilterShader()
✅shader()
✅resetShader()
✅texture()
✅textureMode()
✅textureWrap()
✅normalMaterial()
✅ambientMaterial()
✅emissiveMaterial()
✅specularMaterial()
✅shininess()
✅metalness()
⬜p5.Shader
⬜ In progress (0/8)
⬜camera()
⬜perspective()
⬜linePerspective()
⬜ortho()
⬜frustum()
⬜createCamera()
⬜p5.Camera
⬜setCamera()
We considered that these packages are useless because they provide features that the standard Go library does.