{"roots":["280:432"],"nodeById":{"280:639":{"type":"FRAME","id":"280:639","name":"Section 6","absoluteBoundingBox":{"x":14179,"y":3428.66674804688,"width":375,"height":274},"isolatedAbsoluteRenderBounds":{"x":14179,"y":3428.66674804688,"width":375,"height":274},"relativeTransform":[[1,0,0],[0,1,538.666687011719]],"size":{"x":375,"y":274},"fills":[],"strokeAlign":"INSIDE","layoutAlign":"STRETCH","minWidth":300,"maxWidth":600,"strokes":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"paddingTop":20,"paddingRight":40,"paddingBottom":20,"paddingLeft":40,"layoutMode":"VERTICAL","counterAxisAlignItems":"CENTER","counterAxisSizingMode":"FIXED","children":["280:657"]},"280:480":{"type":"FRAME","id":"280:480","name":"Section 1","absoluteBoundingBox":{"x":14179,"y":2993,"width":375,"height":199},"isolatedAbsoluteRenderBounds":{"x":14179,"y":2993,"width":375,"height":199},"relativeTransform":[[1,0,0],[0,1,103]],"size":{"x":375,"y":199},"fills":[],"strokeAlign":"INSIDE","layoutAlign":"STRETCH","strokes":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"paddingTop":80,"paddingBottom":20,"layoutMode":"VERTICAL","itemSpacing":48,"counterAxisAlignItems":"CENTER","counterAxisSizingMode":"FIXED","children":["280:481"]},"280:483":{"type":"TEXT","id":"280:483","name":"Or perhaps it should be called ‘nose eraser’.","absoluteBoundingBox":{"x":14219,"y":3126,"width":295,"height":46},"isolatedAbsoluteRenderBounds":{"x":14219.75,"y":3130.89770507812,"width":269.00390625,"height":35.29541015625},"relativeTransform":[[1,0,40],[0,1,53]],"size":{"x":295,"y":46},"fills":[{"opacity":0.550000011920929,"blendMode":"NORMAL","type":"SOLID","color":{"r":0,"g":0,"b":0,"a":1},"visible":true}],"strokeAlign":"OUTSIDE","layoutAlign":"STRETCH","strokes":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Or perhaps it should be called ‘nose eraser’. ","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"resolvedParagraphValues":{"0":{"listSpacing":0,"paragraphIndent":0,"paragraphSpacing":0}},"textAutoResize":"HEIGHT","style":{"fontFamily":"Inter","fontPostScriptName":"Inter-Medium","fontStyle":"Medium","textAutoResize":"HEIGHT","fontVariantPosition":"NORMAL","fontSize":16,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":-0.08,"letterSpacingValue":-0.5,"letterSpacingUnit":"PERCENT","lineHeightPx":23.2000007629395,"lineHeightPercent":119.812210083008,"lineHeightPercentFontSize":145,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textCase":"ORIGINAL","textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"280:482":{"type":"TEXT","id":"280:482","name":"Face Eraser","absoluteBoundingBox":{"x":14219,"y":3073,"width":132,"height":29},"isolatedAbsoluteRenderBounds":{"x":14220.7216796875,"y":3078.54541015625,"width":129.326171875,"height":17.71875},"relativeTransform":[[1,0,40],[0,1,0]],"size":{"x":132,"y":29},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0,"g":0,"b":0,"a":1},"visible":true,"opacity":1}],"strokeAlign":"OUTSIDE","strokes":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Face Eraser","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"resolvedParagraphValues":{"0":{"listSpacing":0,"paragraphIndent":0,"paragraphSpacing":0}},"textAutoResize":"WIDTH_AND_HEIGHT","style":{"fontFamily":"Inter","fontPostScriptName":null,"fontStyle":"Semi Bold","textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","fontSize":24,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":-0.48,"letterSpacingValue":-2,"letterSpacingUnit":"PERCENT","lineHeightPx":28.8000011444092,"lineHeightPercent":99.1549377441406,"lineHeightPercentFontSize":120.000007629395,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textCase":"ORIGINAL","textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"280:478":{"type":"TEXT","id":"280:478","name":"CV","absoluteBoundingBox":{"x":14452,"y":2930,"width":23,"height":23},"isolatedAbsoluteRenderBounds":{"x":14452.0556640625,"y":2935.20458984375,"width":22.884765625,"height":16.068115234375},"relativeTransform":[[1,0,273],[0,1,40]],"size":{"x":23,"y":23},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0,"g":0,"b":0,"a":1},"visible":true,"opacity":1}],"strokeAlign":"OUTSIDE","strokes":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"CV","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"resolvedParagraphValues":{"0":{"listSpacing":0,"paragraphIndent":0,"paragraphSpacing":16}},"textAutoResize":"WIDTH_AND_HEIGHT","textAlignHorizontal":"CENTER","textAlignVertical":"CENTER","paragraphSpacing":16,"style":{"fontFamily":"Inter","fontPostScriptName":"Inter-Medium","fontStyle":"Medium","hyperlink":{"type":"NODE","nodeID":"/cv"},"paragraphSpacing":16,"textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","textDecoration":"UNDERLINE","textDecorationSkipInk":true,"fontSize":16,"textAlignHorizontal":"CENTER","textAlignVertical":"CENTER","letterSpacing":-0.08,"letterSpacingValue":-0.5,"letterSpacingUnit":"PERCENT","lineHeightPx":23.2000007629395,"lineHeightPercent":119.812210083008,"lineHeightPercentFontSize":145,"lineHeightUnit":"FONT_SIZE_%","paragraphIndent":0,"listSpacing":0,"italic":false,"textCase":"ORIGINAL","textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"280:477":{"type":"TEXT","id":"280:477","name":"Thoughts","absoluteBoundingBox":{"x":14314,"y":2930,"width":73,"height":23},"isolatedAbsoluteRenderBounds":{"x":14314,"y":2930,"width":73,"height":23},"relativeTransform":[[1,0,135],[0,1,40]],"size":{"x":73,"y":23},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0,"g":0,"b":0,"a":1},"visible":true,"opacity":1}],"visible":false,"strokeAlign":"OUTSIDE","strokes":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Thoughts","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"resolvedParagraphValues":{"0":{"listSpacing":0,"paragraphIndent":0,"paragraphSpacing":16}},"textAutoResize":"WIDTH_AND_HEIGHT","textAlignHorizontal":"CENTER","textAlignVertical":"CENTER","paragraphSpacing":16,"style":{"fontFamily":"Inter","fontPostScriptName":"Inter-Medium","fontStyle":"Medium","hyperlink":{},"paragraphSpacing":16,"textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","textDecoration":"UNDERLINE","textDecorationSkipInk":true,"fontSize":16,"textAlignHorizontal":"CENTER","textAlignVertical":"CENTER","letterSpacing":-0.08,"letterSpacingValue":-0.5,"letterSpacingUnit":"PERCENT","lineHeightPx":23.2000007629395,"lineHeightPercent":119.812210083008,"lineHeightPercentFontSize":145,"lineHeightUnit":"FONT_SIZE_%","paragraphIndent":0,"listSpacing":0,"italic":false,"textCase":"ORIGINAL","textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"280:634":{"type":"FRAME","id":"280:634","name":"Section 6","absoluteBoundingBox":{"x":13415,"y":3612,"width":600,"height":170},"isolatedAbsoluteRenderBounds":{"x":13415,"y":3612,"width":600,"height":170},"relativeTransform":[[1,0,100],[0,1,722]],"size":{"x":600,"y":170},"fills":[],"strokeAlign":"INSIDE","layoutAlign":"STRETCH","maxWidth":600,"strokes":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"paddingTop":20,"paddingBottom":20,"layoutMode":"HORIZONTAL","counterAxisAlignItems":"CENTER","primaryAxisAlignItems":"CENTER","primaryAxisSizingMode":"FIXED","children":["280:656"]},"280:656":{"type":"TEXT","id":"280:656","name":"It’s an ml5.js sketch I made with Claude. You erase the canvas with your face, like a scratch-card. It uses the ml5.js body pose model and tracks the ‘brush’ to your nose. It took about 20 minutes to make, and was a very fun first experiment in vibe coding. You can play with it here.","absoluteBoundingBox":{"x":13415,"y":3632,"width":600,"height":130},"isolatedAbsoluteRenderBounds":{"x":13415,"y":3638.38500976562,"width":587.4541015625,"height":122.421875},"relativeTransform":[[1,0,0],[0,1,20]],"size":{"x":600,"y":130},"fills":[{"opacity":0.550000011920929,"blendMode":"NORMAL","type":"SOLID","color":{"r":0,"g":0,"b":0,"a":1},"visible":true}],"strokeAlign":"OUTSIDE","layoutGrow":1,"strokes":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,9,9,9],"characters":"It’s an ml5.js sketch I made with Claude. You erase the canvas with your face, like a scratch-card. It uses the ml5.js body pose model and tracks the ‘brush’ to your nose. It took about 20 minutes to make, and was a very fun first experiment in vibe coding. You can play with it here.","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"resolvedParagraphValues":{"0":{"listSpacing":0,"paragraphIndent":0,"paragraphSpacing":0}},"textAutoResize":"HEIGHT","style":{"fontFamily":"Inter","fontPostScriptName":"Inter-Medium","fontStyle":"Medium","textAutoResize":"HEIGHT","fontVariantPosition":"NORMAL","fontSize":18,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":-0.09,"letterSpacingValue":-0.5,"letterSpacingUnit":"PERCENT","lineHeightPx":26.1000003814697,"lineHeightPercent":119.812210083008,"lineHeightPercentFontSize":145,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textCase":"ORIGINAL","textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{"9":{"hyperlink":{"type":"URL","url":"https://rubybell.github.io/face-eraser/","openInNewTab":true},"textDecoration":"UNDERLINE","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textCase":"ORIGINAL","textDecorationSkipInk":false,"textDecorationStyle":"solid","textAutoResize":"NONE","textTruncation":"DISABLED","lineHeightPercent":100,"lineHeightPercentFontSize":100}}},"280:469":{"type":"FRAME","id":"280:469","name":"Section 3","absoluteBoundingBox":{"x":13415,"y":3172,"width":600,"height":440},"isolatedAbsoluteRenderBounds":{"x":13415,"y":3172,"width":600,"height":440},"relativeTransform":[[1,0,100],[0,1,282]],"size":{"x":600,"y":440},"fills":[],"strokeAlign":"INSIDE","layoutAlign":"STRETCH","maxWidth":600,"strokes":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"paddingTop":20,"paddingBottom":20,"layoutMode":"VERTICAL","counterAxisAlignItems":"CENTER","primaryAxisAlignItems":"CENTER","counterAxisSizingMode":"FIXED","children":["280:612"]},"280:612":{"type":"WIDGET","id":"280:612","name":"Embed 5","absoluteBoundingBox":{"x":13415,"y":3192,"width":600,"height":400},"targetAspectRatio":{"x":600,"y":400},"isolatedAbsoluteRenderBounds":{"x":13415,"y":3192,"width":600,"height":400},"relativeTransform":[[1,0,0],[0,1,20]],"size":{"x":600,"y":400},"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"syncedState":{"embedAllowFullscreen":"false","embedCodeType":"url","embedIframeHtml":"","embedURL":"https://player.vimeo.com/video/1174878476?h=173e95b86f"}},"280:475":{"type":"FRAME","id":"280:475","name":"Mobile","absoluteBoundingBox":{"x":14179,"y":2890,"width":375,"height":892.666687011719},"isolatedAbsoluteRenderBounds":{"x":14179,"y":2890,"width":375,"height":892.666748046875},"relativeTransform":[[1,0,2272],[0,1,100]],"size":{"x":375,"y":892.666687011719},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":1,"g":1,"b":1,"a":1},"visible":true,"opacity":1}],"strokeAlign":"INSIDE","strokes":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"paddingBottom":80,"clipsContent":true,"overflowDirection":"VERTICAL_SCROLLING","layoutMode":"VERTICAL","counterAxisAlignItems":"CENTER","counterAxisSizingMode":"FIXED","isBreakpointFrame":true,"children":["280:476","280:480","280:490","280:639"]},"280:476":{"type":"FRAME","id":"280:476","name":"Nav","absoluteBoundingBox":{"x":14179,"y":2890,"width":375,"height":103},"isolatedAbsoluteRenderBounds":{"x":14179,"y":2890,"width":375,"height":103},"relativeTransform":[[1,0,0],[0,1,0]],"size":{"x":375,"y":103},"fills":[],"strokeAlign":"INSIDE","layoutAlign":"STRETCH","strokes":[],"accessibleHTMLTag":"NAV","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"paddingTop":40,"paddingRight":24,"paddingBottom":40,"paddingLeft":24,"layoutMode":"HORIZONTAL","itemSpacing":15,"primaryAxisAlignItems":"MAX","primaryAxisSizingMode":"FIXED","children":["280:477","280:478","280:479"]},"280:434":{"type":"FRAME","id":"280:434","name":"Nav","absoluteBoundingBox":{"x":11971,"y":2890,"width":1280,"height":103},"isolatedAbsoluteRenderBounds":{"x":11971,"y":2890,"width":1280,"height":103},"relativeTransform":[[1,0,0],[0,1,0]],"size":{"x":1280,"y":103},"fills":[],"strokeAlign":"INSIDE","layoutAlign":"STRETCH","strokes":[],"accessibleHTMLTag":"NAV","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"paddingTop":40,"paddingRight":60,"paddingBottom":40,"paddingLeft":60,"layoutMode":"HORIZONTAL","itemSpacing":32,"primaryAxisAlignItems":"MAX","primaryAxisSizingMode":"FIXED","children":["280:435","280:436","280:437"]},"280:459":{"type":"FRAME","id":"280:459","name":"Section 1","absoluteBoundingBox":{"x":13315,"y":2993,"width":800,"height":179},"isolatedAbsoluteRenderBounds":{"x":13315,"y":2993,"width":800,"height":179},"relativeTransform":[[1,0,0],[0,1,103]],"size":{"x":800,"y":179},"fills":[],"strokeAlign":"INSIDE","layoutAlign":"STRETCH","strokes":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"paddingTop":80,"paddingBottom":20,"layoutMode":"HORIZONTAL","itemSpacing":48,"primaryAxisAlignItems":"CENTER","primaryAxisSizingMode":"FIXED","children":["280:460"]},"280:462":{"type":"TEXT","id":"280:462","name":"Or perhaps it should be called ‘nose eraser’.","absoluteBoundingBox":{"x":13415,"y":3126,"width":600,"height":26},"isolatedAbsoluteRenderBounds":{"x":13416.0166015625,"y":3132.38500976562,"width":367.72265625,"height":17.296875},"relativeTransform":[[1,0,0],[0,1,53]],"size":{"x":600,"y":26},"fills":[{"opacity":0.550000011920929,"blendMode":"NORMAL","type":"SOLID","color":{"r":0,"g":0,"b":0,"a":1},"visible":true}],"strokeAlign":"OUTSIDE","layoutAlign":"STRETCH","strokes":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Or perhaps it should be called ‘nose eraser’. ","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"resolvedParagraphValues":{"0":{"listSpacing":0,"paragraphIndent":0,"paragraphSpacing":0}},"textAutoResize":"HEIGHT","style":{"fontFamily":"Inter","fontPostScriptName":"Inter-Medium","fontStyle":"Medium","textAutoResize":"HEIGHT","fontVariantPosition":"NORMAL","fontSize":18,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":-0.09,"letterSpacingValue":-0.5,"letterSpacingUnit":"PERCENT","lineHeightPx":26.1000003814697,"lineHeightPercent":119.812210083008,"lineHeightPercentFontSize":145,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textCase":"ORIGINAL","textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"280:454":{"type":"FRAME","id":"280:454","name":"Tablet","absoluteBoundingBox":{"x":13315,"y":2890,"width":800,"height":972},"isolatedAbsoluteRenderBounds":{"x":13315,"y":2890,"width":800,"height":972},"relativeTransform":[[1,0,1408],[0,1,100]],"size":{"x":800,"y":972},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":1,"g":1,"b":1,"a":1},"visible":true,"opacity":1}],"strokeAlign":"INSIDE","strokes":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"paddingBottom":80,"clipsContent":true,"overflowDirection":"VERTICAL_SCROLLING","layoutMode":"VERTICAL","counterAxisAlignItems":"CENTER","counterAxisSizingMode":"FIXED","isBreakpointFrame":true,"children":["280:455","280:459","280:469","280:634"]},"280:460":{"type":"FRAME","id":"280:460","name":"About","absoluteBoundingBox":{"x":13415,"y":3073,"width":600,"height":79},"isolatedAbsoluteRenderBounds":{"x":13415,"y":3073,"width":600,"height":79},"relativeTransform":[[1,0,100],[0,1,80]],"size":{"x":600,"y":79},"fills":[],"strokeAlign":"INSIDE","layoutGrow":1,"maxWidth":600,"strokes":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"layoutMode":"VERTICAL","itemSpacing":24,"counterAxisSizingMode":"FIXED","children":["280:461","280:462"]},"280:458":{"type":"TEXT","id":"280:458","name":"Work","absoluteBoundingBox":{"x":14015,"y":2930,"width":40,"height":23},"isolatedAbsoluteRenderBounds":{"x":14015.3857421875,"y":2935.36352539062,"width":39.2255859375,"height":15.9091796875},"relativeTransform":[[1,0,700],[0,1,40]],"size":{"x":40,"y":23},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0,"g":0,"b":0,"a":1},"visible":true,"opacity":1}],"strokeAlign":"OUTSIDE","strokes":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Work","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"resolvedParagraphValues":{"0":{"listSpacing":0,"paragraphIndent":0,"paragraphSpacing":16}},"textAutoResize":"WIDTH_AND_HEIGHT","textAlignHorizontal":"CENTER","textAlignVertical":"CENTER","paragraphSpacing":16,"style":{"fontFamily":"Inter","fontPostScriptName":"Inter-Medium","fontStyle":"Medium","hyperlink":{"type":"NODE","nodeID":"/"},"paragraphSpacing":16,"textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","textDecoration":"UNDERLINE","textDecorationSkipInk":true,"fontSize":16,"textAlignHorizontal":"CENTER","textAlignVertical":"CENTER","letterSpacing":-0.08,"letterSpacingValue":-0.5,"letterSpacingUnit":"PERCENT","lineHeightPx":23.2000007629395,"lineHeightPercent":119.812210083008,"lineHeightPercentFontSize":145,"lineHeightUnit":"FONT_SIZE_%","paragraphIndent":0,"listSpacing":0,"italic":false,"textCase":"ORIGINAL","textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"280:457":{"type":"TEXT","id":"280:457","name":"CV","absoluteBoundingBox":{"x":13960,"y":2930,"width":23,"height":23},"isolatedAbsoluteRenderBounds":{"x":13960.0556640625,"y":2935.20458984375,"width":22.884765625,"height":16.068115234375},"relativeTransform":[[1,0,645],[0,1,40]],"size":{"x":23,"y":23},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0,"g":0,"b":0,"a":1},"visible":true,"opacity":1}],"strokeAlign":"OUTSIDE","strokes":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"CV","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"resolvedParagraphValues":{"0":{"listSpacing":0,"paragraphIndent":0,"paragraphSpacing":16}},"textAutoResize":"WIDTH_AND_HEIGHT","textAlignHorizontal":"CENTER","textAlignVertical":"CENTER","paragraphSpacing":16,"style":{"fontFamily":"Inter","fontPostScriptName":"Inter-Medium","fontStyle":"Medium","hyperlink":{"type":"NODE","nodeID":"/cv"},"paragraphSpacing":16,"textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","textDecoration":"UNDERLINE","textDecorationSkipInk":true,"fontSize":16,"textAlignHorizontal":"CENTER","textAlignVertical":"CENTER","letterSpacing":-0.08,"letterSpacingValue":-0.5,"letterSpacingUnit":"PERCENT","lineHeightPx":23.2000007629395,"lineHeightPercent":119.812210083008,"lineHeightPercentFontSize":145,"lineHeightUnit":"FONT_SIZE_%","paragraphIndent":0,"listSpacing":0,"italic":false,"textCase":"ORIGINAL","textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"280:432":{"type":"WEBPAGE","id":"280:432","name":"/face-eraser","absoluteBoundingBox":{"x":11907,"y":2790,"width":2711,"height":1136},"isolatedAbsoluteRenderBounds":{"x":11907,"y":2790,"width":2711,"height":1136},"relativeTransform":[[1,0,11907],[0,1,2790]],"size":{"x":2711,"y":1136},"fills":[{"opacity":0.0470588244497776,"blendMode":"NORMAL","type":"SOLID","color":{"r":1,"g":1,"b":1,"a":1},"visible":true}],"strokeAlign":"INSIDE","strokes":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"children":["280:433","280:454","280:475"]},"280:657":{"type":"TEXT","id":"280:657","name":"It’s an ml5.js sketch I made with Claude. You erase the canvas with your face, like a scratch-card. It uses the ml5.js body pose model and tracks the ‘brush’ to your nose. It took about 20 minutes to make, and was a very fun first experiment in vibe coding. You can play with it here.","absoluteBoundingBox":{"x":14219,"y":3448.66674804688,"width":295,"height":234},"isolatedAbsoluteRenderBounds":{"x":14219.51171875,"y":3455.0517578125,"width":290.7080078125,"height":226.421875},"relativeTransform":[[1,0,40],[0,1,20]],"size":{"x":295,"y":234},"fills":[{"opacity":0.550000011920929,"blendMode":"NORMAL","type":"SOLID","color":{"r":0,"g":0,"b":0,"a":1},"visible":true}],"strokeAlign":"OUTSIDE","layoutAlign":"STRETCH","strokes":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,9,9,9],"characters":"It’s an ml5.js sketch I made with Claude. You erase the canvas with your face, like a scratch-card. It uses the ml5.js body pose model and tracks the ‘brush’ to your nose. It took about 20 minutes to make, and was a very fun first experiment in vibe coding. You can play with it here.","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"resolvedParagraphValues":{"0":{"listSpacing":0,"paragraphIndent":0,"paragraphSpacing":0}},"textAutoResize":"HEIGHT","style":{"fontFamily":"Inter","fontPostScriptName":"Inter-Medium","fontStyle":"Medium","textAutoResize":"HEIGHT","fontVariantPosition":"NORMAL","fontSize":18,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":-0.09,"letterSpacingValue":-0.5,"letterSpacingUnit":"PERCENT","lineHeightPx":26.1000003814697,"lineHeightPercent":119.812210083008,"lineHeightPercentFontSize":145,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textCase":"ORIGINAL","textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{"9":{"hyperlink":{"type":"URL","url":"https://rubybell.github.io/face-eraser/","openInNewTab":true},"textDecoration":"UNDERLINE","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textCase":"ORIGINAL","textDecorationSkipInk":false,"textDecorationStyle":"solid","textAutoResize":"NONE","textTruncation":"DISABLED","lineHeightPercent":100,"lineHeightPercentFontSize":100}}},"280:433":{"type":"FRAME","id":"280:433","name":"Desktop","absoluteBoundingBox":{"x":11971,"y":2890,"width":1280,"height":972},"isolatedAbsoluteRenderBounds":{"x":11971,"y":2890,"width":1280,"height":972},"relativeTransform":[[1,0,64],[0,1,100]],"size":{"x":1280,"y":972},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":1,"g":1,"b":1,"a":1},"visible":true,"opacity":1}],"strokeAlign":"INSIDE","strokes":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"paddingBottom":80,"clipsContent":true,"overflowDirection":"VERTICAL_SCROLLING","layoutMode":"VERTICAL","counterAxisAlignItems":"CENTER","counterAxisSizingMode":"FIXED","isBreakpointFrame":true,"children":["280:434","280:438","280:448","280:629"]},"280:601":{"type":"WIDGET","id":"280:601","name":"Embed 5","absoluteBoundingBox":{"x":12311,"y":3192,"width":600,"height":400},"targetAspectRatio":{"x":600,"y":400},"isolatedAbsoluteRenderBounds":{"x":12311,"y":3192,"width":600,"height":400},"relativeTransform":[[1,0,340],[0,1,20]],"size":{"x":600,"y":400},"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"syncedState":{"embedAllowFullscreen":"false","embedCodeType":"url","embedIframeHtml":"","embedURL":"https://player.vimeo.com/video/1174878476?h=173e95b86f"}},"280:448":{"type":"FRAME","id":"280:448","name":"Section 3","absoluteBoundingBox":{"x":11971,"y":3172,"width":1280,"height":440},"isolatedAbsoluteRenderBounds":{"x":11971,"y":3172,"width":1280,"height":440},"relativeTransform":[[1,0,0],[0,1,282]],"size":{"x":1280,"y":440},"fills":[],"strokeAlign":"INSIDE","layoutAlign":"STRETCH","strokes":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"paddingTop":20,"paddingBottom":20,"layoutMode":"VERTICAL","counterAxisAlignItems":"CENTER","primaryAxisAlignItems":"CENTER","counterAxisSizingMode":"FIXED","children":["280:601"]},"280:438":{"type":"FRAME","id":"280:438","name":"Section 1","absoluteBoundingBox":{"x":11971,"y":2993,"width":1280,"height":179},"isolatedAbsoluteRenderBounds":{"x":11971,"y":2993,"width":1280,"height":179},"relativeTransform":[[1,0,0],[0,1,103]],"size":{"x":1280,"y":179},"fills":[],"strokeAlign":"INSIDE","layoutAlign":"STRETCH","strokes":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"paddingTop":80,"paddingBottom":20,"layoutMode":"HORIZONTAL","itemSpacing":48,"primaryAxisAlignItems":"CENTER","primaryAxisSizingMode":"FIXED","children":["280:439"]},"280:490":{"type":"FRAME","id":"280:490","name":"Section 3","absoluteBoundingBox":{"x":14179,"y":3192,"width":375,"height":236.66667175293},"isolatedAbsoluteRenderBounds":{"x":14179,"y":3192,"width":375,"height":236.666748046875},"relativeTransform":[[1,0,0],[0,1,302]],"size":{"x":375,"y":236.66667175293},"fills":[],"strokeAlign":"INSIDE","layoutAlign":"STRETCH","minWidth":300,"maxWidth":600,"strokes":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"paddingTop":20,"paddingRight":40,"paddingBottom":20,"paddingLeft":40,"layoutMode":"VERTICAL","counterAxisAlignItems":"CENTER","counterAxisSizingMode":"FIXED","children":["280:607"]},"280:437":{"type":"TEXT","id":"280:437","name":"Work","absoluteBoundingBox":{"x":13151,"y":2930,"width":40,"height":23},"isolatedAbsoluteRenderBounds":{"x":13151.3857421875,"y":2935.36352539062,"width":39.2255859375,"height":15.9091796875},"relativeTransform":[[1,0,1180],[0,1,40]],"size":{"x":40,"y":23},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0,"g":0,"b":0,"a":1},"visible":true,"opacity":1}],"strokeAlign":"OUTSIDE","strokes":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Work","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"resolvedParagraphValues":{"0":{"listSpacing":0,"paragraphIndent":0,"paragraphSpacing":16}},"textAutoResize":"WIDTH_AND_HEIGHT","textAlignHorizontal":"CENTER","textAlignVertical":"CENTER","paragraphSpacing":16,"style":{"fontFamily":"Inter","fontPostScriptName":"Inter-Medium","fontStyle":"Medium","hyperlink":{"type":"NODE","nodeID":"/"},"paragraphSpacing":16,"textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","textDecoration":"UNDERLINE","textDecorationSkipInk":true,"fontSize":16,"textAlignHorizontal":"CENTER","textAlignVertical":"CENTER","letterSpacing":-0.08,"letterSpacingValue":-0.5,"letterSpacingUnit":"PERCENT","lineHeightPx":23.2000007629395,"lineHeightPercent":119.812210083008,"lineHeightPercentFontSize":145,"lineHeightUnit":"FONT_SIZE_%","paragraphIndent":0,"listSpacing":0,"italic":false,"textCase":"ORIGINAL","textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"280:479":{"type":"TEXT","id":"280:479","name":"Work","absoluteBoundingBox":{"x":14490,"y":2930,"width":40,"height":23},"isolatedAbsoluteRenderBounds":{"x":14490.3857421875,"y":2935.36352539062,"width":39.2255859375,"height":15.9091796875},"relativeTransform":[[1,0,311],[0,1,40]],"size":{"x":40,"y":23},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0,"g":0,"b":0,"a":1},"visible":true,"opacity":1}],"strokeAlign":"OUTSIDE","strokes":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Work","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"resolvedParagraphValues":{"0":{"listSpacing":0,"paragraphIndent":0,"paragraphSpacing":16}},"textAutoResize":"WIDTH_AND_HEIGHT","textAlignHorizontal":"CENTER","textAlignVertical":"CENTER","paragraphSpacing":16,"style":{"fontFamily":"Inter","fontPostScriptName":"Inter-Medium","fontStyle":"Medium","hyperlink":{"type":"NODE","nodeID":"/"},"paragraphSpacing":16,"textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","textDecoration":"UNDERLINE","textDecorationSkipInk":true,"fontSize":16,"textAlignHorizontal":"CENTER","textAlignVertical":"CENTER","letterSpacing":-0.08,"letterSpacingValue":-0.5,"letterSpacingUnit":"PERCENT","lineHeightPx":23.2000007629395,"lineHeightPercent":119.812210083008,"lineHeightPercentFontSize":145,"lineHeightUnit":"FONT_SIZE_%","paragraphIndent":0,"listSpacing":0,"italic":false,"textCase":"ORIGINAL","textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"280:439":{"type":"FRAME","id":"280:439","name":"About","absoluteBoundingBox":{"x":12311,"y":3073,"width":600,"height":79},"isolatedAbsoluteRenderBounds":{"x":12311,"y":3073,"width":600,"height":79},"relativeTransform":[[1,0,340],[0,1,80]],"size":{"x":600,"y":79},"fills":[],"strokeAlign":"INSIDE","layoutGrow":1,"maxWidth":600,"strokes":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"layoutMode":"VERTICAL","itemSpacing":24,"counterAxisSizingMode":"FIXED","children":["280:440","280:441"]},"280:441":{"type":"TEXT","id":"280:441","name":"Or perhaps it should be called ‘nose eraser’.","absoluteBoundingBox":{"x":12311,"y":3126,"width":600,"height":26},"isolatedAbsoluteRenderBounds":{"x":12312.0166015625,"y":3132.38500976562,"width":367.72265625,"height":17.296875},"relativeTransform":[[1,0,0],[0,1,53]],"size":{"x":600,"y":26},"fills":[{"opacity":0.550000011920929,"blendMode":"NORMAL","type":"SOLID","color":{"r":0,"g":0,"b":0,"a":1},"visible":true}],"strokeAlign":"OUTSIDE","layoutAlign":"STRETCH","strokes":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Or perhaps it should be called ‘nose eraser’. ","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"resolvedParagraphValues":{"0":{"listSpacing":0,"paragraphIndent":0,"paragraphSpacing":0}},"textAutoResize":"HEIGHT","style":{"fontFamily":"Inter","fontPostScriptName":"Inter-Medium","fontStyle":"Medium","textAutoResize":"HEIGHT","fontVariantPosition":"NORMAL","fontSize":18,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":-0.09,"letterSpacingValue":-0.5,"letterSpacingUnit":"PERCENT","lineHeightPx":26.1000003814697,"lineHeightPercent":119.812210083008,"lineHeightPercentFontSize":145,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textCase":"ORIGINAL","textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"280:436":{"type":"TEXT","id":"280:436","name":"CV","absoluteBoundingBox":{"x":13096,"y":2930,"width":23,"height":23},"isolatedAbsoluteRenderBounds":{"x":13096.0556640625,"y":2935.20458984375,"width":22.884765625,"height":16.068115234375},"relativeTransform":[[1,0,1125],[0,1,40]],"size":{"x":23,"y":23},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0,"g":0,"b":0,"a":1},"visible":true,"opacity":1}],"strokeAlign":"OUTSIDE","strokes":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"CV","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"resolvedParagraphValues":{"0":{"listSpacing":0,"paragraphIndent":0,"paragraphSpacing":16}},"textAutoResize":"WIDTH_AND_HEIGHT","textAlignHorizontal":"CENTER","textAlignVertical":"CENTER","paragraphSpacing":16,"style":{"fontFamily":"Inter","fontPostScriptName":"Inter-Medium","fontStyle":"Medium","hyperlink":{"type":"NODE","nodeID":"/cv"},"paragraphSpacing":16,"textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","textDecoration":"UNDERLINE","textDecorationSkipInk":true,"fontSize":16,"textAlignHorizontal":"CENTER","textAlignVertical":"CENTER","letterSpacing":-0.08,"letterSpacingValue":-0.5,"letterSpacingUnit":"PERCENT","lineHeightPx":23.2000007629395,"lineHeightPercent":119.812210083008,"lineHeightPercentFontSize":145,"lineHeightUnit":"FONT_SIZE_%","paragraphIndent":0,"listSpacing":0,"italic":false,"textCase":"ORIGINAL","textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"280:435":{"type":"TEXT","id":"280:435","name":"Thoughts","absoluteBoundingBox":{"x":13011,"y":2930,"width":73,"height":23},"isolatedAbsoluteRenderBounds":{"x":13011,"y":2930,"width":73,"height":23},"relativeTransform":[[1,0,1040],[0,1,40]],"size":{"x":73,"y":23},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0,"g":0,"b":0,"a":1},"visible":true,"opacity":1}],"visible":false,"strokeAlign":"OUTSIDE","strokes":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Thoughts","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"resolvedParagraphValues":{"0":{"listSpacing":0,"paragraphIndent":0,"paragraphSpacing":16}},"textAutoResize":"WIDTH_AND_HEIGHT","textAlignHorizontal":"CENTER","textAlignVertical":"CENTER","paragraphSpacing":16,"style":{"fontFamily":"Inter","fontPostScriptName":"Inter-Medium","fontStyle":"Medium","hyperlink":{},"paragraphSpacing":16,"textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","textDecoration":"UNDERLINE","textDecorationSkipInk":true,"fontSize":16,"textAlignHorizontal":"CENTER","textAlignVertical":"CENTER","letterSpacing":-0.08,"letterSpacingValue":-0.5,"letterSpacingUnit":"PERCENT","lineHeightPx":23.2000007629395,"lineHeightPercent":119.812210083008,"lineHeightPercentFontSize":145,"lineHeightUnit":"FONT_SIZE_%","paragraphIndent":0,"listSpacing":0,"italic":false,"textCase":"ORIGINAL","textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"280:607":{"type":"WIDGET","id":"280:607","name":"Embed 5","absoluteBoundingBox":{"x":14219,"y":3212,"width":295,"height":196.66667175293},"targetAspectRatio":{"x":600,"y":400},"isolatedAbsoluteRenderBounds":{"x":14219,"y":3212,"width":295,"height":196.666748046875},"relativeTransform":[[1,0,40],[0,1,20]],"size":{"x":295,"y":196.66667175293},"layoutAlign":"STRETCH","accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"syncedState":{"embedAllowFullscreen":"false","embedCodeType":"url","embedIframeHtml":"","embedURL":"https://player.vimeo.com/video/1174878476?h=173e95b86f"}},"280:481":{"type":"FRAME","id":"280:481","name":"About","absoluteBoundingBox":{"x":14179,"y":3073,"width":375,"height":99},"isolatedAbsoluteRenderBounds":{"x":14179,"y":3073,"width":375,"height":99},"relativeTransform":[[1,0,0],[0,1,80]],"size":{"x":375,"y":99},"fills":[],"strokeAlign":"INSIDE","layoutAlign":"STRETCH","minWidth":300,"maxWidth":600,"strokes":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"paddingRight":40,"paddingLeft":40,"layoutMode":"VERTICAL","itemSpacing":24,"counterAxisSizingMode":"FIXED","children":["280:482","280:483"]},"280:440":{"type":"TEXT","id":"280:440","name":"Face Eraser","absoluteBoundingBox":{"x":12311,"y":3073,"width":132,"height":29},"isolatedAbsoluteRenderBounds":{"x":12312.7216796875,"y":3078.54541015625,"width":129.326171875,"height":17.71875},"relativeTransform":[[1,0,0],[0,1,0]],"size":{"x":132,"y":29},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0,"g":0,"b":0,"a":1},"visible":true,"opacity":1}],"strokeAlign":"OUTSIDE","strokes":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Face Eraser","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"resolvedParagraphValues":{"0":{"listSpacing":0,"paragraphIndent":0,"paragraphSpacing":0}},"textAutoResize":"WIDTH_AND_HEIGHT","style":{"fontFamily":"Inter","fontPostScriptName":null,"fontStyle":"Semi Bold","textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","fontSize":24,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":-0.48,"letterSpacingValue":-2,"letterSpacingUnit":"PERCENT","lineHeightPx":28.8000011444092,"lineHeightPercent":99.1549377441406,"lineHeightPercentFontSize":120.000007629395,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textCase":"ORIGINAL","textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"280:455":{"type":"FRAME","id":"280:455","name":"Nav","absoluteBoundingBox":{"x":13315,"y":2890,"width":800,"height":103},"isolatedAbsoluteRenderBounds":{"x":13315,"y":2890,"width":800,"height":103},"relativeTransform":[[1,0,0],[0,1,0]],"size":{"x":800,"y":103},"fills":[],"strokeAlign":"INSIDE","layoutAlign":"STRETCH","strokes":[],"accessibleHTMLTag":"NAV","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"paddingTop":40,"paddingRight":60,"paddingBottom":40,"paddingLeft":60,"layoutMode":"HORIZONTAL","itemSpacing":32,"primaryAxisAlignItems":"MAX","primaryAxisSizingMode":"FIXED","children":["280:456","280:457","280:458"]},"280:629":{"type":"FRAME","id":"280:629","name":"Section 6","absoluteBoundingBox":{"x":11971,"y":3612,"width":1280,"height":170},"isolatedAbsoluteRenderBounds":{"x":11971,"y":3612,"width":1280,"height":170},"relativeTransform":[[1,0,0],[0,1,722]],"size":{"x":1280,"y":170},"fills":[],"strokeAlign":"INSIDE","layoutAlign":"STRETCH","strokes":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"paddingTop":20,"paddingBottom":20,"layoutMode":"HORIZONTAL","counterAxisAlignItems":"CENTER","primaryAxisAlignItems":"CENTER","primaryAxisSizingMode":"FIXED","children":["280:655"]},"280:655":{"type":"TEXT","id":"280:655","name":"It’s an ml5.js sketch I made with Claude. You erase the canvas with your face, like a scratch-card. It uses the ml5.js body pose model and tracks the ‘brush’ to your nose. It took about 20 minutes to make, and was a very fun first experiment in vibe coding. You can play with it here.","absoluteBoundingBox":{"x":12311,"y":3632,"width":600,"height":130},"isolatedAbsoluteRenderBounds":{"x":12311,"y":3638.38500976562,"width":587.4541015625,"height":122.421875},"relativeTransform":[[1,0,340],[0,1,20]],"size":{"x":600,"y":130},"fills":[{"opacity":0.550000011920929,"blendMode":"NORMAL","type":"SOLID","color":{"r":0,"g":0,"b":0,"a":1},"visible":true}],"strokeAlign":"OUTSIDE","layoutGrow":1,"maxWidth":600,"strokes":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,8,8,8,8],"characters":"It’s an ml5.js sketch I made with Claude. You erase the canvas with your face, like a scratch-card. It uses the ml5.js body pose model and tracks the ‘brush’ to your nose. It took about 20 minutes to make, and was a very fun first experiment in vibe coding. You can play with it here.","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"resolvedParagraphValues":{"0":{"listSpacing":0,"paragraphIndent":0,"paragraphSpacing":0}},"textAutoResize":"HEIGHT","style":{"fontFamily":"Inter","fontPostScriptName":"Inter-Medium","fontStyle":"Medium","textAutoResize":"HEIGHT","fontVariantPosition":"NORMAL","fontSize":18,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":-0.09,"letterSpacingValue":-0.5,"letterSpacingUnit":"PERCENT","lineHeightPx":26.1000003814697,"lineHeightPercent":119.812210083008,"lineHeightPercentFontSize":145,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textCase":"ORIGINAL","textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{"8":{"hyperlink":{"type":"URL","url":"https://rubybell.github.io/face-eraser/","openInNewTab":true},"textDecoration":"UNDERLINE","textDecorationSkipInk":true,"paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textCase":"ORIGINAL","textDecorationStyle":"solid","textAutoResize":"NONE","textTruncation":"DISABLED","lineHeightPercent":100,"lineHeightPercentFontSize":100}}},"51:2725":{"type":"TEXT","id":"51:2725","name":"CV Heading","absoluteBoundingBox":{"x":0,"y":0,"width":24,"height":26},"isolatedAbsoluteRenderBounds":{"x":0.441051155328751,"y":6.90909051895142,"width":22.2629833221436,"height":16.97727394104},"relativeTransform":[[1,0,0],[0,1,0]],"size":{"x":24,"y":26},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0,"g":0,"b":0,"a":1},"visible":true,"opacity":1}],"strokeAlign":"INSIDE","strokes":[],"strokeWeight":0,"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Ag","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"resolvedParagraphValues":{"0":{"listSpacing":0,"paragraphIndent":0,"paragraphSpacing":16}},"textAutoResize":"WIDTH_AND_HEIGHT","paragraphSpacing":16,"style":{"fontFamily":"Inter","fontPostScriptName":null,"fontStyle":"Semi Bold","paragraphSpacing":16,"textAutoResize":"WIDTH_AND_HEIGHT","responsiveTextStyleVariants":[{"minWidth":1280,"name":"Desktop","style":{"paragraphSpacing":16,"fontSize":18,"letterSpacing":-0.09,"letterSpacingValue":-0.5,"letterSpacingUnit":"PERCENT","lineHeightPx":26.1000003814697,"lineHeightPercent":123.733329772949,"lineHeightPercentFontSize":145,"lineHeightUnit":"FONT_SIZE_%"}},{"minWidth":800,"name":"Tablet","style":{"paragraphSpacing":16,"fontSize":18,"letterSpacing":-0.09,"letterSpacingValue":-0.5,"letterSpacingUnit":"PERCENT","lineHeightPx":26.1000003814697,"lineHeightPercent":123.733329772949,"lineHeightPercentFontSize":145,"lineHeightUnit":"FONT_SIZE_%"}},{"minWidth":0,"name":"Mobile","style":{"paragraphSpacing":16,"fontSize":16,"letterSpacing":-0.08,"letterSpacingValue":-0.5,"letterSpacingUnit":"PERCENT","lineHeightPx":23.2000007629395,"lineHeightPercent":123.733329772949,"lineHeightPercentFontSize":145,"lineHeightUnit":"FONT_SIZE_%"}}],"fontVariantPosition":"NORMAL","fontSize":18,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":-0.09,"letterSpacingValue":-0.5,"letterSpacingUnit":"PERCENT","lineHeightPx":26.1000003814697,"lineHeightPercent":119.812210083008,"lineHeightPercentFontSize":145,"lineHeightUnit":"FONT_SIZE_%","paragraphIndent":0,"listSpacing":0,"italic":false,"textCase":"ORIGINAL","textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"26:5381":{"type":"TEXT","id":"26:5381","name":"Date Style","absoluteBoundingBox":{"x":0,"y":0,"width":16,"height":15},"isolatedAbsoluteRenderBounds":{"x":0.298295468091965,"y":3.27272701263428,"width":14.5525579452515,"height":11.3181819915771},"relativeTransform":[[1,0,0],[0,1,0]],"size":{"x":16,"y":15},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0,"g":0,"b":0,"a":1},"visible":true,"opacity":1}],"strokeAlign":"INSIDE","strokes":[],"strokeWeight":0,"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Ag","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"resolvedParagraphValues":{"0":{"listSpacing":0,"paragraphIndent":0,"paragraphSpacing":0}},"textAutoResize":"WIDTH_AND_HEIGHT","style":{"fontFamily":"Inter","fontPostScriptName":"Inter-Medium","fontStyle":"Medium","textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","fontSize":12,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":0,"letterSpacingValue":0,"letterSpacingUnit":"PERCENT","lineHeightPx":14.5227270126343,"lineHeightPercent":100,"lineHeightUnit":"INTRINSIC_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textCase":"ORIGINAL","textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED","lineHeightPercentFontSize":100},"styleOverrideTable":{}},"280:461":{"type":"TEXT","id":"280:461","name":"Face Eraser","absoluteBoundingBox":{"x":13415,"y":3073,"width":132,"height":29},"isolatedAbsoluteRenderBounds":{"x":13416.7216796875,"y":3078.54541015625,"width":129.326171875,"height":17.71875},"relativeTransform":[[1,0,0],[0,1,0]],"size":{"x":132,"y":29},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0,"g":0,"b":0,"a":1},"visible":true,"opacity":1}],"strokeAlign":"OUTSIDE","strokes":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Face Eraser","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"resolvedParagraphValues":{"0":{"listSpacing":0,"paragraphIndent":0,"paragraphSpacing":0}},"textAutoResize":"WIDTH_AND_HEIGHT","style":{"fontFamily":"Inter","fontPostScriptName":null,"fontStyle":"Semi Bold","textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","fontSize":24,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":-0.48,"letterSpacingValue":-2,"letterSpacingUnit":"PERCENT","lineHeightPx":28.8000011444092,"lineHeightPercent":99.1549377441406,"lineHeightPercentFontSize":120.000007629395,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textCase":"ORIGINAL","textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"280:456":{"type":"TEXT","id":"280:456","name":"Thoughts","absoluteBoundingBox":{"x":13875,"y":2930,"width":73,"height":23},"isolatedAbsoluteRenderBounds":{"x":13875,"y":2930,"width":73,"height":23},"relativeTransform":[[1,0,560],[0,1,40]],"size":{"x":73,"y":23},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0,"g":0,"b":0,"a":1},"visible":true,"opacity":1}],"visible":false,"strokeAlign":"OUTSIDE","strokes":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Thoughts","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"resolvedParagraphValues":{"0":{"listSpacing":0,"paragraphIndent":0,"paragraphSpacing":16}},"textAutoResize":"WIDTH_AND_HEIGHT","textAlignHorizontal":"CENTER","textAlignVertical":"CENTER","paragraphSpacing":16,"style":{"fontFamily":"Inter","fontPostScriptName":"Inter-Medium","fontStyle":"Medium","hyperlink":{},"paragraphSpacing":16,"textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","textDecoration":"UNDERLINE","textDecorationSkipInk":true,"fontSize":16,"textAlignHorizontal":"CENTER","textAlignVertical":"CENTER","letterSpacing":-0.08,"letterSpacingValue":-0.5,"letterSpacingUnit":"PERCENT","lineHeightPx":23.2000007629395,"lineHeightPercent":119.812210083008,"lineHeightPercentFontSize":145,"lineHeightUnit":"FONT_SIZE_%","paragraphIndent":0,"listSpacing":0,"italic":false,"textCase":"ORIGINAL","textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}}},"assetIdToGuid":{},"guidToUrl":{"145:149":"/avo","276:236":"/waving-machine","219:612":"/ghost-catch","280:432":"/face-eraser","213:2":"/playdeo","217:298":"/slit-scan-photo-booth","308:3":"/moody-monsters","167:32":"/image-classifier","2:1573":"/cv","2:1282":"/"},"fonts":{"Inter:Medium":{"id":"Inter_1","url":"/_woff/v2/Inter_1/Inter_1.woff2","source":1,"italic":false,"weight":500,"variationAxes":[{"tag":"wght","value":500.0,"name":"Weight"},{"tag":"slnt","value":0.0,"name":"Slant"}],"subsets":{"baseUrl":"/_woff/v2/Inter_1/","subsetMappings":[{"unicodeRange":"U+0000-00A0,U+00A2-00A9,U+00AC-00AE,U+00B0-00B7,U+00B9-00BA,U+00BC-00BE,U+00D7,U+00F7,U+2000-206F,U+2074,U+20AC,U+2122,U+2190-21BB,U+2212,U+2215,U+F8FF,U+FEFF,U+FFFD","file":"Inter_1-english.woff2"},{"unicodeRange":"U+00A1,U+00AA-00AB,U+00AF,U+00B8,U+00BB,U+00BF-00D6,U+00D8-00F6,U+00F8-00FF,U+0131,U+0152-0153,U+02B0-02FF","file":"Inter_1-rest-latin.woff2"},{"unicodeRange":"U+0100-0130,U+0132-0151,U+0154-017F","file":"Inter_1-latin-extended-a.woff2"},{"unicodeRange":"U+0180-024F","file":"Inter_1-latin-extended-b.woff2"},{"unicodeRange":"U+1E00-1EFF","file":"Inter_1-latin-extended-additional.woff2"},{"unicodeRange":"U+0250-02AF,U+0300-1DFF,U+1F00-1FFF,U+2070-2073,U+2075-20AB,U+20AD-2121,U+2123-218F,U+21BC-2211,U+2213-2214,U+2216-F8FE,U+F900-FEFE,U+FF00-FFFC,U+FFFE-FFFF","file":"Inter_1-rest.woff2"}]}},"Inter:Semi Bold":{"id":"Inter_1","url":"/_woff/v2/Inter_1/Inter_1.woff2","source":1,"italic":false,"weight":600,"variationAxes":[{"tag":"wght","value":600.0,"name":"Weight"},{"tag":"slnt","value":0.0,"name":"Slant"}],"subsets":{"baseUrl":"/_woff/v2/Inter_1/","subsetMappings":[{"unicodeRange":"U+0000-00A0,U+00A2-00A9,U+00AC-00AE,U+00B0-00B7,U+00B9-00BA,U+00BC-00BE,U+00D7,U+00F7,U+2000-206F,U+2074,U+20AC,U+2122,U+2190-21BB,U+2212,U+2215,U+F8FF,U+FEFF,U+FFFD","file":"Inter_1-english.woff2"},{"unicodeRange":"U+00A1,U+00AA-00AB,U+00AF,U+00B8,U+00BB,U+00BF-00D6,U+00D8-00F6,U+00F8-00FF,U+0131,U+0152-0153,U+02B0-02FF","file":"Inter_1-rest-latin.woff2"},{"unicodeRange":"U+0100-0130,U+0132-0151,U+0154-017F","file":"Inter_1-latin-extended-a.woff2"},{"unicodeRange":"U+0180-024F","file":"Inter_1-latin-extended-b.woff2"},{"unicodeRange":"U+1E00-1EFF","file":"Inter_1-latin-extended-additional.woff2"},{"unicodeRange":"U+0250-02AF,U+0300-1DFF,U+1F00-1FFF,U+2070-2073,U+2075-20AB,U+20AD-2121,U+2123-218F,U+21BC-2211,U+2213-2214,U+2216-F8FE,U+F900-FEFE,U+FF00-FFFC,U+FFFE-FFFF","file":"Inter_1-rest.woff2"}]}}},"assets":{"f90aa364204cba8a2323586c5704eaf2a6647665":{"type":"GENERATED_ASSET","url":"f90aa364204cba8a2323586c5704eaf2a6647665.png","size":{"x":1200,"y":630},"offsets":{"top":{"value":0,"unit":"PIXELS"},"right":{"value":0,"unit":"PIXELS"},"bottom":{"value":0,"unit":"PIXELS"},"left":{"value":0,"unit":"PIXELS"}},"format":"PNG"},"abb83d8d95d8a7297fb9f37ffe4a282846644c1a":{"type":"GENERATED_ASSET","url":"abb83d8d95d8a7297fb9f37ffe4a282846644c1a.png","size":{"x":1200,"y":630},"offsets":{"top":{"value":0,"unit":"PIXELS"},"right":{"value":0,"unit":"PIXELS"},"bottom":{"value":0,"unit":"PIXELS"},"left":{"value":0,"unit":"PIXELS"}},"format":"PNG"}},"stablePathToAssetInfo":{"286:17":{"hash":"f90aa364204cba8a2323586c5704eaf2a6647665"},"149:341":{"hash":"abb83d8d95d8a7297fb9f37ffe4a282846644c1a"}},"animateRootIds":[],"siteSettings":{"title":"Face Eraser","description":"Vibe coded experiment that uses an ml5.js pose model","scalingMode":"REFLOW","socialImageFilename":"f90aa364204cba8a2323586c5704eaf2a6647665.png","labs":{"E5FBBA911B2B7A09E649D4BE6CDF8591EAEFC881":false},"blockSearchIndexing":true},"sourceCodeHash":"d8e9616221a673dc89ee49b864f2429d7bb4fef2"}