{"id":22053154,"url":"https://github.com/nuilab/multitouch-fabric","last_synced_at":"2026-05-01T23:36:44.544Z","repository":{"id":90098194,"uuid":"84127623","full_name":"NuiLab/multitouch-fabric","owner":"NuiLab","description":"👗 A Multitouch fabric synthesizer/demo powered by Vulkan, Rust, and an Arduino Uno. ","archived":false,"fork":false,"pushed_at":"2017-04-29T01:06:54.000Z","size":8778,"stargazers_count":1,"open_issues_count":0,"forks_count":3,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-28T21:46:05.470Z","etag":null,"topics":["arduino","audio","capstone","demoscene","fabric","raymarching-distance-fields","research","rust","serial","vulkan"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NuiLab.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"license.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-03-06T22:29:31.000Z","updated_at":"2017-10-19T00:36:20.000Z","dependencies_parsed_at":null,"dependency_job_id":"c9d7074b-650b-4c9c-a483-86f94225a03f","html_url":"https://github.com/NuiLab/multitouch-fabric","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NuiLab%2Fmultitouch-fabric","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NuiLab%2Fmultitouch-fabric/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NuiLab%2Fmultitouch-fabric/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NuiLab%2Fmultitouch-fabric/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NuiLab","download_url":"https://codeload.github.com/NuiLab/multitouch-fabric/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245127915,"owners_count":20565201,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arduino","audio","capstone","demoscene","fabric","raymarching-distance-fields","research","rust","serial","vulkan"],"created_at":"2024-11-30T15:15:23.309Z","updated_at":"2026-05-01T23:36:44.496Z","avatar_url":"https://github.com/NuiLab.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Mockup Showcase](visualizer/images/devlog/6.gif)\n\n# Multitouch Fabric\n\n[![License][license-img]][license-url]\n\nThe capstone project of Janette Hernandez (Electrical Engineering BSc) and Maria Contreras (Electrical Engineering BSc), a smart fabric that can respond to touch input.\n\n## Fabric Design\n\nThe Multitouch Fabric is composed of several components:\n\n- Resistive Thread\n- Non-Conductive Thread\n- Neoprene\n- Eeonyx \n- Perfboards\n- Adafruit METRO Mini\n\nThe design consists of three different layers. In order to distinguish between all three layers, we will call the bottom layer **Rows**, middle layer **Eeonyx**, and the top layer **Columns**.\n\n- The **Rows** are composed of 4, *4.5 inch* rows of conductive thread facing up with non-conductive thread facing below. \n\n- The **Eeonyx** is a resistive fabric that its electrical resistance decreases under mechanical stress, such as pressures. This fabric possesses surface resistance between *10 Ohm/sq* and *10 billion Ohm/sq*.\n\n- The **Columns** are composed of 4, *4.5 inch* rows of conductive thread facing down with non-conductive thread facing up.\n\nThese three layers are sandwiched together, where the Columns and Rows are connected to pins 4-11 on the METRO Mini. Pins 8-11 will read (`digitalRead`) which will either read 1 or 0 (High or Low) on the serial monitor.\n\n## Visualization\n\nThe visualization uses raymarching to render modulating curves that vibrate and change shape according to the position of the user's fingers.\n\n### Data Flow\n\n![Data Flow Visualization](visualizer/images/data-flow.png)\n\nDuring the application update loop data from the Arduino is read from the serial port, and passed to uniform buffers in Vulkan, and we show the next image in the swapchain. \n\n[license-img]: http://img.shields.io/:license-mit-blue.svg?style=flat-square\n[license-url]: https://opensource.org/licenses/MIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnuilab%2Fmultitouch-fabric","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnuilab%2Fmultitouch-fabric","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnuilab%2Fmultitouch-fabric/lists"}