<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://nurdspace.nl/index.php?action=history&amp;feed=atom&amp;title=Vibe_%27o_Nacci_Lamp</id>
	<title>Vibe &#039;o Nacci Lamp - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://nurdspace.nl/index.php?action=history&amp;feed=atom&amp;title=Vibe_%27o_Nacci_Lamp"/>
	<link rel="alternate" type="text/html" href="https://nurdspace.nl/index.php?title=Vibe_%27o_Nacci_Lamp&amp;action=history"/>
	<updated>2026-04-20T07:06:17Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.4</generator>
	<entry>
		<id>https://nurdspace.nl/index.php?title=Vibe_%27o_Nacci_Lamp&amp;diff=15488&amp;oldid=prev</id>
		<title>Anus at 15:48, 31 December 2025</title>
		<link rel="alternate" type="text/html" href="https://nurdspace.nl/index.php?title=Vibe_%27o_Nacci_Lamp&amp;diff=15488&amp;oldid=prev"/>
		<updated>2025-12-31T15:48:44Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 17:48, 31 December 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l4&quot;&gt;Line 4:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 4:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|Status=Being Consumed&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|Status=Being Consumed&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|Niche=Infra&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|Niche=Infra&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|Picture=Vibeonaccibal.jpg&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|Purpose=Saving energy and money&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|Purpose=Saving energy and money&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|Tool=No&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|Tool=No&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key nurdspace_wiki:diff::1.12:old-15486:rev-15488 --&gt;
&lt;/table&gt;</summary>
		<author><name>Anus</name></author>
	</entry>
	<entry>
		<id>https://nurdspace.nl/index.php?title=Vibe_%27o_Nacci_Lamp&amp;diff=15486&amp;oldid=prev</id>
		<title>Anus: Created page with &quot;{{Project |Name=Vibe o Nacci Lamp |Skills=3D design + printing, Arduino, Programming (arduino), 3D Printing, ai, Archeology |Status=Being Consumed |Niche=Infra |Purpose=Saving energy and money |Tool=No |Location=Rookhok |Cost=nihil }} SCAD file for generating the dome.     // =========================   // Parameters   // =========================   diameter = 150;          // mm   thickness = 2.5;         // mm   hole_diameter = 8;       // mm   hole_count = 50;...&quot;</title>
		<link rel="alternate" type="text/html" href="https://nurdspace.nl/index.php?title=Vibe_%27o_Nacci_Lamp&amp;diff=15486&amp;oldid=prev"/>
		<updated>2025-12-31T15:42:58Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;{{Project |Name=Vibe o Nacci Lamp |Skills=3D design + printing, Arduino, Programming (arduino), 3D Printing, ai, Archeology |Status=Being Consumed |Niche=Infra |Purpose=Saving energy and money |Tool=No |Location=Rookhok |Cost=nihil }} SCAD file for generating the dome.     // =========================   // Parameters   // =========================   diameter = 150;          // mm   thickness = 2.5;         // mm   hole_diameter = 8;       // mm   hole_count = 50;...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Project&lt;br /&gt;
|Name=Vibe o Nacci Lamp&lt;br /&gt;
|Skills=3D design + printing, Arduino, Programming (arduino), 3D Printing, ai, Archeology&lt;br /&gt;
|Status=Being Consumed&lt;br /&gt;
|Niche=Infra&lt;br /&gt;
|Purpose=Saving energy and money&lt;br /&gt;
|Tool=No&lt;br /&gt;
|Location=Rookhok&lt;br /&gt;
|Cost=nihil&lt;br /&gt;
}}&lt;br /&gt;
SCAD file for generating the dome.&lt;br /&gt;
&lt;br /&gt;
 // =========================&lt;br /&gt;
 // Parameters&lt;br /&gt;
 // =========================&lt;br /&gt;
 diameter = 150;          // mm&lt;br /&gt;
 thickness = 2.5;         // mm&lt;br /&gt;
 hole_diameter = 8;       // mm&lt;br /&gt;
 hole_count = 50;         // aantal gaten (tweakbaar)&lt;br /&gt;
 $fn = 256;&lt;br /&gt;
 &lt;br /&gt;
 // =========================&lt;br /&gt;
 // Afgeleide maten&lt;br /&gt;
 // =========================&lt;br /&gt;
 R = diameter / 2;&lt;br /&gt;
 r_inner = R - thickness;&lt;br /&gt;
 hc = ceil(hole_count * 2.323);&lt;br /&gt;
 &lt;br /&gt;
 // =========================&lt;br /&gt;
 // Dome (halve bol, hol)&lt;br /&gt;
 // =========================&lt;br /&gt;
 module dome_shell() {&lt;br /&gt;
     difference() {&lt;br /&gt;
         sphere(r = R);&lt;br /&gt;
         sphere(r = r_inner);&lt;br /&gt;
         translate([0,0,-R])&lt;br /&gt;
             cube([2*R,2*R,2*R], center=true);&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 // =========================&lt;br /&gt;
 // Radiaal georiënteerd gat&lt;br /&gt;
 // =========================&lt;br /&gt;
 module radial_hole(theta, phi) {&lt;br /&gt;
     rotate([0, 0, phi])&lt;br /&gt;
     rotate([0, theta, 0])&lt;br /&gt;
     translate([0, 0, r_inner])&lt;br /&gt;
         cylinder(&lt;br /&gt;
             d = hole_diameter,&lt;br /&gt;
             h = thickness*2,&lt;br /&gt;
             center = true&lt;br /&gt;
         );&lt;br /&gt;
    &lt;br /&gt;
         x = r_inner * sin(theta) * cos(phi);&lt;br /&gt;
         y = r_inner * sin(theta) * sin(phi);&lt;br /&gt;
         zc = r_inner* cos(theta);&lt;br /&gt;
 &lt;br /&gt;
         echo(&lt;br /&gt;
             str(&lt;br /&gt;
                 x, &amp;quot;,&amp;quot;,&lt;br /&gt;
                 y, &amp;quot;,&amp;quot;,&lt;br /&gt;
                 zc, &amp;quot;,&amp;quot;,&lt;br /&gt;
                 theta, &amp;quot;,&amp;quot;,&lt;br /&gt;
                 phi % 360&lt;br /&gt;
             )&lt;br /&gt;
         );&lt;br /&gt;
 } &lt;br /&gt;
 &lt;br /&gt;
 // =========================&lt;br /&gt;
 // Fibonacci-verdeling&lt;br /&gt;
 // =========================&lt;br /&gt;
 module holes_fibonacci() {&lt;br /&gt;
     golden = (1 + sqrt(5)) / 2;&lt;br /&gt;
 &lt;br /&gt;
     for (i = [0 : hc - 1]) {&lt;br /&gt;
         z = 1 - 2 * (i + 0.5) / hc;&lt;br /&gt;
         theta = acos(z);&lt;br /&gt;
         phi = 360 * i / golden;&lt;br /&gt;
 &lt;br /&gt;
         // alleen bovenste hemisfeer&lt;br /&gt;
         if (theta &amp;lt; 90-hole_diameter)&lt;br /&gt;
             radial_hole(theta, phi);&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 echo(&amp;quot;x,y,z,theta_deg,phi_deg&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
 // =========================&lt;br /&gt;
 // Eindmodel&lt;br /&gt;
 // =========================&lt;br /&gt;
 difference() {&lt;br /&gt;
     dome_shell();&lt;br /&gt;
     holes_fibonacci();&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 // =========================&lt;br /&gt;
 // Gatenteller&lt;br /&gt;
 // =========================&lt;br /&gt;
 function valid_holes() =&lt;br /&gt;
     [&lt;br /&gt;
         for (i = [0 : hc - 1])&lt;br /&gt;
             let(&lt;br /&gt;
                 z = 1 - 2 * (i + 0.5) / hc,&lt;br /&gt;
                 theta = acos(z)&lt;br /&gt;
             )&lt;br /&gt;
             if (theta &amp;lt; 90 - hole_diameter)&lt;br /&gt;
                 i&lt;br /&gt;
     ];&lt;br /&gt;
 &lt;br /&gt;
 echo(&amp;quot;Aantal gaten:&amp;quot;, len(valid_holes()));&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Leuk toch?&lt;br /&gt;
&lt;br /&gt;
Arduino code voor aansturen van LEDjes&lt;br /&gt;
&lt;br /&gt;
    #include &amp;lt;Arduino.h&amp;gt;&lt;br /&gt;
    #include &amp;lt;FastLED.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
    #define LED_PIN     6&lt;br /&gt;
    #define NUM_LEDS    50&lt;br /&gt;
    #define BRIGHTNESS  255&lt;br /&gt;
    #define LED_TYPE    WS2812B&lt;br /&gt;
    #define COLOR_ORDER GRB&lt;br /&gt;
 &lt;br /&gt;
    CRGB leds[NUM_LEDS];&lt;br /&gt;
 &lt;br /&gt;
    void setup() {&lt;br /&gt;
        FastLED.addLeds&amp;lt;LED_TYPE, LED_PIN, COLOR_ORDER&amp;gt;(leds, NUM_LEDS);&lt;br /&gt;
        FastLED.setBrightness(BRIGHTNESS);&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    void loop() {&lt;br /&gt;
        static uint8_t hue = INT8_MAX;&lt;br /&gt;
 &lt;br /&gt;
        for (int i = 0; i &amp;lt; NUM_LEDS; i++) {&lt;br /&gt;
            leds[i] = CHSV(hue + i * PI, 255, 255);&lt;br /&gt;
        }&lt;br /&gt;
 &lt;br /&gt;
        FastLED.show();&lt;br /&gt;
        hue--;&lt;br /&gt;
        delay(1);&lt;br /&gt;
    }&lt;/div&gt;</summary>
		<author><name>Anus</name></author>
	</entry>
</feed>