This whole block should go inside the main code block above, because in Observable code cells, the code has to be inside brackets (called a 'closure') { ... } to use top-level declarations like 'let' and 'const'. (functions are an exception, like you see with `function drawCircle(...)` block above) And variables created inside Observable code { ... } blocks are only accessible from the same block (scope), _unless_ they are returned at the end of the block, like `canvas` is returned in the above block (so it can be used in other blocks). :)
Isaac is looking awesome! 🙌 Nice job making the mouth and body drawing functions!
Some small feedback points (sorry for unsolicited) 😅:
- The default values for the sliders should be adjusted (try reopening the page to see how the defaults look)
- The sliders can be named something other than "Label"
- I see you are passing x, y values to drawBody and drawMouth calls in the main block, but they aren't getting used to position the shapes.
- Same for params for fill and stroke color -- use the params instead of hardcoded vals inside the function :) also check there's a "#black", `#` is only used before hex codes like `#00FF00`.