home.social

#letterset — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #letterset, aggregated by home.social.

  1. Implemented my shared world canvas and multitouch-handler library, so now we have canvas pan, individual piece rotation, and (after a lot of effort) cutting of rotated pieces!

    The world canvas and multitouch handler were ripped out of #LetterSet into their own libraries, but I had only used their canonical version in #RandomForms, so this was a nice further use. Bonus: all testing for this has been done via my insane iOS-simulator-multitouch-mcp setup!

    #swiftui #BuildInPublic

  2. Implemented my shared world canvas and multitouch-handler library, so now we have canvas pan, individual piece rotation, and (after a lot of effort) cutting of rotated pieces!

    The world canvas and multitouch handler were ripped out of #LetterSet into their own libraries, but I had only used their canonical version in #RandomForms, so this was a nice further use. Bonus: all testing for this has been done via my insane iOS-simulator-multitouch-mcp setup!

    #swiftui #BuildInPublic

  3. @stroughtonsmith I have been working on a “WorldCanvas” library for just this, but it’s taken so much work:
    - a multi-gesture handler (for optionally simultaneous pan, zoom, rotate)
    - a reusable world, that can translate gestures and position from non-world objects to world objects
    - a testing framework for reliably testing both of the above, together

    These are all done separately and in use in #RandomForms, but I won’t be confident in their reusability until I upgrade #LetterSet to use them.

  4. @stroughtonsmith I have been working on a “WorldCanvas” library for just this, but it’s taken so much work:
    - a multi-gesture handler (for optionally simultaneous pan, zoom, rotate)
    - a reusable world, that can translate gestures and position from non-world objects to world objects
    - a testing framework for reliably testing both of the above, together

    These are all done separately and in use in #RandomForms, but I won’t be confident in their reusability until I upgrade #LetterSet to use them.

  5. Test harnesses beget test harnesses.

    This recording shows a new playground I’ve made to test a new “World Canvas” library. The demo encapsulates all of the common UX patterns from #LetterSet and #wishyouwerehere:
    - multitouch-handler for simultaneous pan, rotate, zoom
    - shape-elasticity for metal effects
    - world-canvas for document-based pan / zoom / state
    - protocol-based sheets with optional metal rendering.

    #RandomForms #BuildInPublic #swiftui

  6. Test harnesses beget test harnesses.

    This recording shows a new playground I’ve made to test a new “World Canvas” library. The demo encapsulates all of the common UX patterns from #LetterSet and #wishyouwerehere:
    - multitouch-handler for simultaneous pan, rotate, zoom
    - shape-elasticity for metal effects
    - world-canvas for document-based pan / zoom / state
    - protocol-based sheets with optional metal rendering.

    #RandomForms #BuildInPublic #swiftui

  7. Ruler now incorporates this secret third state. Transient masks are used to block pencil strokes from impacting the sheet and the underlying canvas. In English: a pencil can no longer draw under the ruler. The ruler behaves like an object in the real world!


    #PencilKit #BuildInPublic #LetterSet #swiftui

  8. Ruler now incorporates this secret third state. Transient masks are used to block pencil strokes from impacting the sheet and the underlying canvas. In English: a pencil can no longer draw under the ruler. The ruler behaves like an object in the real world!


    #PencilKit #BuildInPublic #LetterSet #swiftui

  9. Now I have a third state within masking. Throughout the app, I have to track:
    -the current #PencilKit stroke
    -the sum of all strokes
    -the boundary of letters that have been tapped

    I track these in two ways, as the shape of the above as it applies to the sheet is different vs its orientation to the canvas. Then add undo history across both.

    Now: the idea of a transient object that blocks transfer to the canvas, but doesn’t impact the cumulative sheet mask.

    #BuildInPublic #LetterSet #swiftui

  10. Now I have a third state within masking. Throughout the app, I have to track:
    -the current #PencilKit stroke
    -the sum of all strokes
    -the boundary of letters that have been tapped

    I track these in two ways, as the shape of the above as it applies to the sheet is different vs its orientation to the canvas. Then add undo history across both.

    Now: the idea of a transient object that blocks transfer to the canvas, but doesn’t impact the cumulative sheet mask.

    #BuildInPublic #LetterSet #swiftui

  11. Image export in #RandomForms
    now let’s me use it as a starting point in #LetterSet. I also added a really fun haptic feedback effect to coincide with the first and second threshold changes in the animation. This is starting to get fun!

    #swiftui #BuildInPublic

  12. Image export in #RandomForms
    now let’s me use it as a starting point in #LetterSet. I also added a really fun haptic feedback effect to coincide with the first and second threshold changes in the animation. This is starting to get fun!

    #swiftui #BuildInPublic

  13. My sophomore effort, LetterSet - A Typography Tool, is live! Neither a text editor, nor a drawing tool, but a secret third thing.

    In this unusual experience, you can relive what it meant to design in the era of pre-Desktop Publishing. Revel in the joy of:
    -Rudimentary font selection
    -Mistakes that are hard to undo
    -Creative expression through limitations
    -An unusual photo collage experience

    I can’t wait to see what you do with it.
    letterset.app

    #LetterSet #typography #showcase25

  14. My sophomore effort, LetterSet - A Typography Tool, is live! Neither a text editor, nor a drawing tool, but a secret third thing.

    In this unusual experience, you can relive what it meant to design in the era of pre-Desktop Publishing. Revel in the joy of:
    -Rudimentary font selection
    -Mistakes that are hard to undo
    -Creative expression through limitations
    -An unusual photo collage experience

    I can’t wait to see what you do with it.
    letterset.app

    #LetterSet #typography #showcase25

  15. New day new feature: “Infinite canvas” & “hard mode.”

    This video shows disabling reusable letters, and accommodate all screen sizes.
    - “Infinite canvas” now acts like a design app should: you can pan around & use flexible canvas sizes. As a bonus, you can now more easily use larger letter sheets, even if you’re on a small screen.
    - “Hard mode” makes it so letters cannot be re-used. It is still possible if you switch font sheets, but is less obvious.

    #typography #LetterSet #pencilkit

  16. New day new feature: “Infinite canvas” & “hard mode.”

    This video shows disabling reusable letters, and accommodate all screen sizes.
    - “Infinite canvas” now acts like a design app should: you can pan around & use flexible canvas sizes. As a bonus, you can now more easily use larger letter sheets, even if you’re on a small screen.
    - “Hard mode” makes it so letters cannot be re-used. It is still possible if you switch font sheets, but is less obvious.

    #typography #LetterSet #pencilkit

  17. New day new feature. Today we have sheet selection, for adjustable weights and sizes! #typography #pencilkit #LetterSet

  18. New day new feature. Today we have sheet selection, for adjustable weights and sizes! #typography #pencilkit #LetterSet

  19. I sent an invite to everyone who requested one yesterday. A new build is out, and I can’t wait to see what you do with it!

    #pencilkit #LetterSet

  20. I sent an invite to everyone who requested one yesterday. A new build is out, and I can’t wait to see what you do with it!

    #pencilkit #LetterSet

  21. Okay #typography fans, I've created a TestFlight sign-up form. If you want to play around with the existing version, please sign-up here: letterSet.app.

    #pencilkit #LetterSet

  22. Okay #typography fans, I've created a TestFlight sign-up form. If you want to play around with the existing version, please sign-up here: letterSet.app.

    #pencilkit #LetterSet

  23. I tried to explain to my kids yesterday how the my new app works and … what’s it called when you use one outdated metaphor to explain another?

    Maybe this needs a new term?
    - Deuterskeuomorphism: using an outdated object or interface to explain another outdated object or interface.

    #LetterSet #PencilKit

  24. I tried to explain to my kids yesterday how the my new app works and … what’s it called when you use one outdated metaphor to explain another?

    Maybe this needs a new term?
    - Deuterskeuomorphism: using an outdated object or interface to explain another outdated object or interface.

    #LetterSet #PencilKit

  25. Ok I got it working on the iPhone too! It’s … hilarious. #LetterSet #PencilKit

  26. Ok I got it working on the iPhone too! It’s … hilarious. #LetterSet #PencilKit

  27. The iPhone version is still not something I’ve looked at in the least, but the app itself is starting to look SO GOOD.

    @stroughtonsmith I’m not ready to use the showcase 25 hashtag yet, but I’m very close.

    #PencilKit #LetterSet

  28. The iPhone version is still not something I’ve looked at in the least, but the app itself is starting to look SO GOOD.

    @stroughtonsmith I’m not ready to use the showcase 25 hashtag yet, but I’m very close.

    #PencilKit #LetterSet

  29. Almost all of the pieces are together for the MVP. Letter color is now selectable and ignores dark mode, pen size has two options, the gesture system has been completely redone (as a single UIRepresentable that handles both rotate and move). Major next step is a moveable canvas, and an eraser.

    The eraser is the challenging one, as I’m rendering pixel data from a PKDrawing, and so the eraser has to manipulate pixels (luckily already separate from the background).

    #PencilKit #LetterSet

  30. Almost all of the pieces are together for the MVP. Letter color is now selectable and ignores dark mode, pen size has two options, the gesture system has been completely redone (as a single UIRepresentable that handles both rotate and move). Major next step is a moveable canvas, and an eraser.

    The eraser is the challenging one, as I’m rendering pixel data from a PKDrawing, and so the eraser has to manipulate pixels (luckily already separate from the background).

    #PencilKit #LetterSet

  31. Oh you thought I was done pushing this into the realm of absurdity? Nope! How about repurposing a page curl metal shader to emulate translucent vellum?

    As an aside: can I just say how annoying it is to have a single surface that needs to move, rotate, curl and accept pencil input?
    #PencilKit #LetterSet

  32. Oh you thought I was done pushing this into the realm of absurdity? Nope! How about repurposing a page curl metal shader to emulate translucent vellum?

    As an aside: can I just say how annoying it is to have a single surface that needs to move, rotate, curl and accept pencil input?
    #PencilKit #LetterSet

  33. Making it so you can accidentally screw up the adjacent letter has taken so much work. #PencilKit #LetterSet

  34. Making it so you can accidentally screw up the adjacent letter has taken so much work. #PencilKit #LetterSet

  35. After taking almost two years off, I’m starting on the #PencilKit version of #LetterSet again.

    I had to rebuild the masking as before it only worked on a single letter, and I thought “oh this would be easy to scale across multiple views” but I was very wrong. I’ve also switched to a pixel-based output, which more easily allows for letter mistakes.

  36. After taking almost two years off, I’m starting on the #PencilKit version of #LetterSet again.

    I had to rebuild the masking as before it only worked on a single letter, and I thought “oh this would be easy to scale across multiple views” but I was very wrong. I’ve also switched to a pixel-based output, which more easily allows for letter mistakes.

  37. Client-side reimplementation to use the new fonts is done, and the server has been updated to render these correctly. One minor bug where the selected font is forgotten if you preview and then go back to edit, but other than that this is ready to go.

    Side note: I really, really want to get back to the #letterSet app, but I promised myself I’d finish this one first.

    #postcard #sharedPhotography #BuildInPublic #swiftui

  38. Client-side reimplementation to use the new fonts is done, and the server has been updated to render these correctly. One minor bug where the selected font is forgotten if you preview and then go back to edit, but other than that this is ready to go.

    Side note: I really, really want to get back to the #letterSet app, but I promised myself I’d finish this one first.

    #postcard #sharedPhotography #BuildInPublic #swiftui

  39. Bringing in #PencilKit into this incredibly silly #SwiftUI #LetterSet app. I am determined to make it as realistic as possible.

  40. Bringing in #PencilKit into this incredibly silly #SwiftUI #LetterSet app. I am determined to make it as realistic as possible.