Latest commit

History

22 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

tinygang

All things related to tiny gang activites. TinyGang is an open source wearable project consisting of a set of jackets that communicate wirelessly with each other through proximity and motion. The patterns of the group change depending on the mode, number of people, duration and other elements to be defined by the group wearing the jackets.

jackets

ESP Thing Hardware Version

Codename : TrackStar :

other options:

Teensy Hardware Version

Base Setup:

Sensors (optional):

  • Teensy Prop Shield with motion sensor (calibrated)

Jacket Integration:

steggos

some hackaday article about laser cut led diffusion : http://imakethin.gs/blog/glowy-dinosaur-hoody

@metal and some 3d printing later.. https://www.thingiverse.com/thing:30800 and remixes ensued: https://www.thingiverse.com/thing:293796https://www.thingiverse.com/thing:3327694

alt text@mpinner climbing the led wall from @mbientlab Steggo led hoodies are born and joining the tinygang of led wearables together. #makerfaire #climbies

the code

as the intent is for all wearers or builders of tinygang to participate, the programming environment is pretty open. you are encouraged to create and alter your own patterns.

banks of patterns are provided. you can definitely change these. only your patterns are ever shown, so remove or revise what you don't like.

when your jacket excites all the other jackets will excite with your given mode. you can select your mode via little dip switches on the circuit board.

each pattern is assigned a mode. in our code (todo: config file) we assign a pattern to each mode. each person only shows their bank of patterns for each mode excited.

the goal is people add more patterns and variety when they enter the proximity of tiny gang. for this we need a variety of people with a variety of modes selected. another thing happens when everyone is on the same mode. the pattern fills up so it is nearly always on. still working out if there is a way to more dynamically assign people to mode. we'll see what you come up with.

side note, there is also some means of color handling and the ability to send that around live. it has only been tested with one jacket that had the teensy motion sensor. it was able to change all the colors for all the jackets. it was a bit too much, really.

additional works can include sensors to learn about the dynamic of social interactions, the mood of a room, or interactivity research.

social links

#tinygang

http://twitter.com/tinyjacketgang

https://www.instagram.com/tinyjacketgang/

About

All things related to tiny gang activites

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Latest commit

History

22 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

tinygang

All things related to tiny gang activites. TinyGang is an open source wearable project consisting of a set of jackets that communicate wirelessly with each other through proximity and motion. The patterns of the group change depending on the mode, number of people, duration and other elements to be defined by the group wearing the jackets.

jackets

ESP Thing Hardware Version

Codename : TrackStar :

other options:

Teensy Hardware Version

Base Setup:

Sensors (optional):

  • Teensy Prop Shield with motion sensor (calibrated)

Jacket Integration:

steggos

some hackaday article about laser cut led diffusion : http://imakethin.gs/blog/glowy-dinosaur-hoody

@metal and some 3d printing later.. https://www.thingiverse.com/thing:30800 and remixes ensued: https://www.thingiverse.com/thing:293796https://www.thingiverse.com/thing:3327694

alt text@mpinner climbing the led wall from @mbientlab Steggo led hoodies are born and joining the tinygang of led wearables together. #makerfaire #climbies

the code

as the intent is for all wearers or builders of tinygang to participate, the programming environment is pretty open. you are encouraged to create and alter your own patterns.

banks of patterns are provided. you can definitely change these. only your patterns are ever shown, so remove or revise what you don't like.

when your jacket excites all the other jackets will excite with your given mode. you can select your mode via little dip switches on the circuit board.

each pattern is assigned a mode. in our code (todo: config file) we assign a pattern to each mode. each person only shows their bank of patterns for each mode excited.

the goal is people add more patterns and variety when they enter the proximity of tiny gang. for this we need a variety of people with a variety of modes selected. another thing happens when everyone is on the same mode. the pattern fills up so it is nearly always on. still working out if there is a way to more dynamically assign people to mode. we'll see what you come up with.

side note, there is also some means of color handling and the ability to send that around live. it has only been tested with one jacket that had the teensy motion sensor. it was able to change all the colors for all the jackets. it was a bit too much, really.

additional works can include sensors to learn about the dynamic of social interactions, the mood of a room, or interactivity research.

social links

#tinygang

http://twitter.com/tinyjacketgang

https://www.instagram.com/tinyjacketgang/

About

All things related to tiny gang activites

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

22 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

tinygang

All things related to tiny gang activites. TinyGang is an open source wearable project consisting of a set of jackets that communicate wirelessly with each other through proximity and motion. The patterns of the group change depending on the mode, number of people, duration and other elements to be defined by the group wearing the jackets.

jackets

ESP Thing Hardware Version

Codename : TrackStar :

other options:

Teensy Hardware Version

Base Setup:

Sensors (optional):

  • Teensy Prop Shield with motion sensor (calibrated)

Jacket Integration:

steggos

some hackaday article about laser cut led diffusion : http://imakethin.gs/blog/glowy-dinosaur-hoody

@metal and some 3d printing later.. https://www.thingiverse.com/thing:30800 and remixes ensued: https://www.thingiverse.com/thing:293796https://www.thingiverse.com/thing:3327694

alt text@mpinner climbing the led wall from @mbientlab Steggo led hoodies are born and joining the tinygang of led wearables together. #makerfaire #climbies

the code

as the intent is for all wearers or builders of tinygang to participate, the programming environment is pretty open. you are encouraged to create and alter your own patterns.

banks of patterns are provided. you can definitely change these. only your patterns are ever shown, so remove or revise what you don't like.

when your jacket excites all the other jackets will excite with your given mode. you can select your mode via little dip switches on the circuit board.

each pattern is assigned a mode. in our code (todo: config file) we assign a pattern to each mode. each person only shows their bank of patterns for each mode excited.

the goal is people add more patterns and variety when they enter the proximity of tiny gang. for this we need a variety of people with a variety of modes selected. another thing happens when everyone is on the same mode. the pattern fills up so it is nearly always on. still working out if there is a way to more dynamically assign people to mode. we'll see what you come up with.

side note, there is also some means of color handling and the ability to send that around live. it has only been tested with one jacket that had the teensy motion sensor. it was able to change all the colors for all the jackets. it was a bit too much, really.

additional works can include sensors to learn about the dynamic of social interactions, the mood of a room, or interactivity research.

social links

#tinygang

http://twitter.com/tinyjacketgang

https://www.instagram.com/tinyjacketgang/

About

All things related to tiny gang activites

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

22 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

tinygang

All things related to tiny gang activites. TinyGang is an open source wearable project consisting of a set of jackets that communicate wirelessly with each other through proximity and motion. The patterns of the group change depending on the mode, number of people, duration and other elements to be defined by the group wearing the jackets.

jackets

ESP Thing Hardware Version

Codename : TrackStar :

other options:

Teensy Hardware Version

Base Setup:

Sensors (optional):

  • Teensy Prop Shield with motion sensor (calibrated)

Jacket Integration:

steggos

some hackaday article about laser cut led diffusion : http://imakethin.gs/blog/glowy-dinosaur-hoody

@metal and some 3d printing later.. https://www.thingiverse.com/thing:30800 and remixes ensued: https://www.thingiverse.com/thing:293796https://www.thingiverse.com/thing:3327694

alt text@mpinner climbing the led wall from @mbientlab Steggo led hoodies are born and joining the tinygang of led wearables together. #makerfaire #climbies

the code

as the intent is for all wearers or builders of tinygang to participate, the programming environment is pretty open. you are encouraged to create and alter your own patterns.

banks of patterns are provided. you can definitely change these. only your patterns are ever shown, so remove or revise what you don't like.

when your jacket excites all the other jackets will excite with your given mode. you can select your mode via little dip switches on the circuit board.

each pattern is assigned a mode. in our code (todo: config file) we assign a pattern to each mode. each person only shows their bank of patterns for each mode excited.

the goal is people add more patterns and variety when they enter the proximity of tiny gang. for this we need a variety of people with a variety of modes selected. another thing happens when everyone is on the same mode. the pattern fills up so it is nearly always on. still working out if there is a way to more dynamically assign people to mode. we'll see what you come up with.

side note, there is also some means of color handling and the ability to send that around live. it has only been tested with one jacket that had the teensy motion sensor. it was able to change all the colors for all the jackets. it was a bit too much, really.

additional works can include sensors to learn about the dynamic of social interactions, the mood of a room, or interactivity research.

social links

#tinygang

http://twitter.com/tinyjacketgang

https://www.instagram.com/tinyjacketgang/

About

All things related to tiny gang activites

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Latest commit

History

22 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

tinygang

All things related to tiny gang activites. TinyGang is an open source wearable project consisting of a set of jackets that communicate wirelessly with each other through proximity and motion. The patterns of the group change depending on the mode, number of people, duration and other elements to be defined by the group wearing the jackets.

jackets

ESP Thing Hardware Version

Codename : TrackStar :

other options:

Teensy Hardware Version

Base Setup:

Sensors (optional):

  • Teensy Prop Shield with motion sensor (calibrated)

Jacket Integration:

steggos

some hackaday article about laser cut led diffusion : http://imakethin.gs/blog/glowy-dinosaur-hoody

@metal and some 3d printing later.. https://www.thingiverse.com/thing:30800 and remixes ensued: https://www.thingiverse.com/thing:293796https://www.thingiverse.com/thing:3327694

alt text@mpinner climbing the led wall from @mbientlab Steggo led hoodies are born and joining the tinygang of led wearables together. #makerfaire #climbies

the code

as the intent is for all wearers or builders of tinygang to participate, the programming environment is pretty open. you are encouraged to create and alter your own patterns.

banks of patterns are provided. you can definitely change these. only your patterns are ever shown, so remove or revise what you don't like.

when your jacket excites all the other jackets will excite with your given mode. you can select your mode via little dip switches on the circuit board.

each pattern is assigned a mode. in our code (todo: config file) we assign a pattern to each mode. each person only shows their bank of patterns for each mode excited.

the goal is people add more patterns and variety when they enter the proximity of tiny gang. for this we need a variety of people with a variety of modes selected. another thing happens when everyone is on the same mode. the pattern fills up so it is nearly always on. still working out if there is a way to more dynamically assign people to mode. we'll see what you come up with.

side note, there is also some means of color handling and the ability to send that around live. it has only been tested with one jacket that had the teensy motion sensor. it was able to change all the colors for all the jackets. it was a bit too much, really.

additional works can include sensors to learn about the dynamic of social interactions, the mood of a room, or interactivity research.

social links

#tinygang

http://twitter.com/tinyjacketgang

https://www.instagram.com/tinyjacketgang/

About

All things related to tiny gang activites

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

22 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

tinygang

All things related to tiny gang activites. TinyGang is an open source wearable project consisting of a set of jackets that communicate wirelessly with each other through proximity and motion. The patterns of the group change depending on the mode, number of people, duration and other elements to be defined by the group wearing the jackets.

jackets

ESP Thing Hardware Version

Codename : TrackStar :

other options:

Teensy Hardware Version

Base Setup:

Sensors (optional):

  • Teensy Prop Shield with motion sensor (calibrated)

Jacket Integration:

steggos

some hackaday article about laser cut led diffusion : http://imakethin.gs/blog/glowy-dinosaur-hoody

@metal and some 3d printing later.. https://www.thingiverse.com/thing:30800 and remixes ensued: https://www.thingiverse.com/thing:293796https://www.thingiverse.com/thing:3327694

alt text@mpinner climbing the led wall from @mbientlab Steggo led hoodies are born and joining the tinygang of led wearables together. #makerfaire #climbies

the code

as the intent is for all wearers or builders of tinygang to participate, the programming environment is pretty open. you are encouraged to create and alter your own patterns.

banks of patterns are provided. you can definitely change these. only your patterns are ever shown, so remove or revise what you don't like.

when your jacket excites all the other jackets will excite with your given mode. you can select your mode via little dip switches on the circuit board.

each pattern is assigned a mode. in our code (todo: config file) we assign a pattern to each mode. each person only shows their bank of patterns for each mode excited.

the goal is people add more patterns and variety when they enter the proximity of tiny gang. for this we need a variety of people with a variety of modes selected. another thing happens when everyone is on the same mode. the pattern fills up so it is nearly always on. still working out if there is a way to more dynamically assign people to mode. we'll see what you come up with.

side note, there is also some means of color handling and the ability to send that around live. it has only been tested with one jacket that had the teensy motion sensor. it was able to change all the colors for all the jackets. it was a bit too much, really.

additional works can include sensors to learn about the dynamic of social interactions, the mood of a room, or interactivity research.

social links

#tinygang

http://twitter.com/tinyjacketgang

https://www.instagram.com/tinyjacketgang/

About

All things related to tiny gang activites

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

22 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

tinygang

All things related to tiny gang activites. TinyGang is an open source wearable project consisting of a set of jackets that communicate wirelessly with each other through proximity and motion. The patterns of the group change depending on the mode, number of people, duration and other elements to be defined by the group wearing the jackets.

jackets

ESP Thing Hardware Version

Codename : TrackStar :

other options:

Teensy Hardware Version

Base Setup:

Sensors (optional):

  • Teensy Prop Shield with motion sensor (calibrated)

Jacket Integration:

steggos

some hackaday article about laser cut led diffusion : http://imakethin.gs/blog/glowy-dinosaur-hoody

@metal and some 3d printing later.. https://www.thingiverse.com/thing:30800 and remixes ensued: https://www.thingiverse.com/thing:293796https://www.thingiverse.com/thing:3327694

alt text@mpinner climbing the led wall from @mbientlab Steggo led hoodies are born and joining the tinygang of led wearables together. #makerfaire #climbies

the code

as the intent is for all wearers or builders of tinygang to participate, the programming environment is pretty open. you are encouraged to create and alter your own patterns.

banks of patterns are provided. you can definitely change these. only your patterns are ever shown, so remove or revise what you don't like.

when your jacket excites all the other jackets will excite with your given mode. you can select your mode via little dip switches on the circuit board.

each pattern is assigned a mode. in our code (todo: config file) we assign a pattern to each mode. each person only shows their bank of patterns for each mode excited.

the goal is people add more patterns and variety when they enter the proximity of tiny gang. for this we need a variety of people with a variety of modes selected. another thing happens when everyone is on the same mode. the pattern fills up so it is nearly always on. still working out if there is a way to more dynamically assign people to mode. we'll see what you come up with.

side note, there is also some means of color handling and the ability to send that around live. it has only been tested with one jacket that had the teensy motion sensor. it was able to change all the colors for all the jackets. it was a bit too much, really.

additional works can include sensors to learn about the dynamic of social interactions, the mood of a room, or interactivity research.

social links

#tinygang

http://twitter.com/tinyjacketgang

https://www.instagram.com/tinyjacketgang/

About

All things related to tiny gang activites

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Latest commit

History

22 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

tinygang

All things related to tiny gang activites. TinyGang is an open source wearable project consisting of a set of jackets that communicate wirelessly with each other through proximity and motion. The patterns of the group change depending on the mode, number of people, duration and other elements to be defined by the group wearing the jackets.

jackets

ESP Thing Hardware Version

Codename : TrackStar :

other options:

Teensy Hardware Version

Base Setup:

Sensors (optional):

  • Teensy Prop Shield with motion sensor (calibrated)

Jacket Integration:

steggos

some hackaday article about laser cut led diffusion : http://imakethin.gs/blog/glowy-dinosaur-hoody

@metal and some 3d printing later.. https://www.thingiverse.com/thing:30800 and remixes ensued: https://www.thingiverse.com/thing:293796https://www.thingiverse.com/thing:3327694

alt text@mpinner climbing the led wall from @mbientlab Steggo led hoodies are born and joining the tinygang of led wearables together. #makerfaire #climbies

the code

as the intent is for all wearers or builders of tinygang to participate, the programming environment is pretty open. you are encouraged to create and alter your own patterns.

banks of patterns are provided. you can definitely change these. only your patterns are ever shown, so remove or revise what you don't like.

when your jacket excites all the other jackets will excite with your given mode. you can select your mode via little dip switches on the circuit board.

each pattern is assigned a mode. in our code (todo: config file) we assign a pattern to each mode. each person only shows their bank of patterns for each mode excited.

the goal is people add more patterns and variety when they enter the proximity of tiny gang. for this we need a variety of people with a variety of modes selected. another thing happens when everyone is on the same mode. the pattern fills up so it is nearly always on. still working out if there is a way to more dynamically assign people to mode. we'll see what you come up with.

side note, there is also some means of color handling and the ability to send that around live. it has only been tested with one jacket that had the teensy motion sensor. it was able to change all the colors for all the jackets. it was a bit too much, really.

additional works can include sensors to learn about the dynamic of social interactions, the mood of a room, or interactivity research.

social links

#tinygang

http://twitter.com/tinyjacketgang

https://www.instagram.com/tinyjacketgang/

About

All things related to tiny gang activites

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages