Skip to content
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

Design: Layouts #43

Open
amclain opened this issue Jun 28, 2020 · 1 comment
Open

Design: Layouts #43

amclain opened this issue Jun 28, 2020 · 1 comment
Assignees

Comments

@amclain
Copy link
Member

amclain commented Jun 28, 2020

As discussed in the 2020-06-23 meeting, we need to design a system to lay out pixels that don't conform to a perfect grid (like the Keybow does). We need to be able to accommodate the zig-zag layout of keys and pixels like on a full size keyboard.

Keybow's grid:

image

Zig-zag of a full size keyboard:

image

@amclain amclain changed the title Design: Non-grid layouts Design: Layouts Jun 28, 2020
@amclain
Copy link
Member Author

amclain commented Jul 1, 2020

We had some cool and insightful suggestions from "a reputable source":

  • We don't need to offload animations to the hardware's graphics processor.
  • Take scenic, use its math functions (i.e. matrix math), ignore the rest of scenic. Check out the c_src folder.
  • Have an output array of vectors (pixels), have an input array of things you want to draw. Take the output vectors and try to find what's being drawn in input space. Let the vectors do the magic for you.
    • Calculate the output for each pixel. Treat it like ray casting.
    • This approach works better for a small number of pixels (like the ~200 we would have on a keyboard), rather than the traditional rendering approach which is optimized for millions of pixels on a display.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants