From e8f51086d48273a645fe4c988301f1401762e099 Mon Sep 17 00:00:00 2001 From: Haldrup-tech Date: Fri, 27 Sep 2024 13:57:39 -0400 Subject: [PATCH] changed graph settings and removed the extra cytsim folder --- CytoSim/README.md | 2 - CytoSim/__pycache__/particle.cpython-312.pyc | Bin 1452 -> 0 bytes CytoSim/__pycache__/sensor.cpython-312.pyc | Bin 6863 -> 0 bytes CytoSim/__pycache__/slider.cpython-312.pyc | Bin 2779 -> 0 bytes CytoSim/main.py | 168 ------------------- CytoSim/particle.py | 23 --- CytoSim/sensor.py | 95 ----------- CytoSim/slider.py | 35 ---- __pycache__/particle.cpython-312.pyc | Bin 1452 -> 1460 bytes __pycache__/sensor.cpython-312.pyc | Bin 6863 -> 6871 bytes __pycache__/slider.cpython-312.pyc | Bin 2779 -> 2787 bytes main.py | 25 ++- test.txt | 0 13 files changed, 18 insertions(+), 330 deletions(-) delete mode 100644 CytoSim/README.md delete mode 100644 CytoSim/__pycache__/particle.cpython-312.pyc delete mode 100644 CytoSim/__pycache__/sensor.cpython-312.pyc delete mode 100644 CytoSim/__pycache__/slider.cpython-312.pyc delete mode 100644 CytoSim/main.py delete mode 100644 CytoSim/particle.py delete mode 100644 CytoSim/sensor.py delete mode 100644 CytoSim/slider.py delete mode 100644 test.txt diff --git a/CytoSim/README.md b/CytoSim/README.md deleted file mode 100644 index e141f72..0000000 --- a/CytoSim/README.md +++ /dev/null @@ -1,2 +0,0 @@ -# CytoSim - diff --git a/CytoSim/__pycache__/particle.cpython-312.pyc b/CytoSim/__pycache__/particle.cpython-312.pyc deleted file mode 100644 index fec941180d9e7b79c5dab05490381b68480dfa3c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1452 zcmaJ>O=uHA6rTM_jH$KFrfC&H0~YEE8We3Us6800KM+N&ha6m%?6ldiY2(bckg$~; z>cNxrR11anSn*PCdh#lGaSuXRkDk0qg9@H}Z#J987JRVZyqS6P=6&zI*-!obNdjV= z`!#z~CgdAVB2ha^I}6Ghv4|x(q)22kO)PnZSjrnXfl`#}lCFM7wNOHgMCvH*QBc+h z1xt$*WlLHiMFo8nRZ9VkSt?+>9@FDN;=ajTyX4SPEOG-Q-lV|Seg?2cJjo*lXrXvA z%%Z!9r@*We86lnuGdwB8lH5e3R|NBD7LEOsOV?0MTYj7BQT;Q43? zE6J|`G)XHp+{~}sX$=m+aC_g7KDLqHoL-;ywbNUcubtg~a zy0AnW{arpd?Sl=T0RS!o>6eWcjaPYpAltmv>Pt88u@vn56C*klo$~|~=wiu*F_cO# zm(H4~y@)uB+k)PzVE*<=#|~=O!%m4h;_3uLDPA> z;QYg!9S7q^x=Vb|4D-S-004b0voW+evOcnUYHQq2>DxE`)Ww~r?=F3qd_Vbi`D5H4 zFZii@%{#5W%x5)oFg4xsJpzCG9~C63o1Xt903S?Gx_Td5oiKbhx*GQSUMBi+RTlLZ zTO2QnYMxxIS*8o^-Jm@Q*jr44Egu7b1az7>J-jixIkrBwn%jb2J+pnu*K#|fzBZ0s zD`*$sp~3^1hj(KbLDDd)3)Z58`Vqr;x@bD#4jTl&44X?7fSmyCH4z>}Lo#dx0a#r= z46s6W<(M+LdsJ42b`!EP+yJSe_&h#_@PLW R^p*7eRyAp2mjH+}e*qMrDDVIP diff --git a/CytoSim/__pycache__/sensor.cpython-312.pyc b/CytoSim/__pycache__/sensor.cpython-312.pyc deleted file mode 100644 index b98724ea6ef227bb99c14e0c795b1443f36bf83c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6863 zcmeGhOHdnEa()Q$k;K==b|By+wGkKy0%sk6s0Fj;SC)xw99uR~gk}s9`rw%%AXzwU z6{(a@Ue_LgDpx^Hf$|~t$@paNVQZb*Lo~))($4O|Te}zEvQV|D%4N5Ez5-S#wd;NM|_dNZ{;V2}a_#6Lyd8~vW{(%*}FdDH@3&b435-b@Zd;~>w6D&1L zu=H(8?cpO6q?>t$6>m^wsgTqv8}9=#M{tCXWC!^MO+AJpfALi6B9!*AmpfH@*XrU*Y!YDrO0({&Rm8fw~13Fs;2 zoBdc)UqcckLO(-Cf^bvbXE@BAC+AIuSaDRgvmrqY#DbihCyWOG(c|$++4gBXG7;t6 zjLZmJUMsJ<)jB`5 zT)MWeK`L*U>H55X19}si%xD9KVn$p(nvo@wMQDgHcHL6cwj?+Vv>OIBJE<+Esaf0x zl&%!(F}WsBfn#Xe6{plksyJ7>ALp$UkZNq1&Qmth++-r`G+T7adNxUDh8f}JDMc*T zsc?l(nfOJz!^Z43^);k!;uf1Vow}{9XqtJY`Ykl6>kV62TWi_=ob$voeI4OlI%VSU z9+TFo6wT5p=Cq_mnob$sYI~*nEi`F9`C@O~ z{+#o7=xa99*LEl&-;@BMhVk-vXz)tBp%tWnXa51NyIhGRN??%-)Y#DCpEAjW>@>K3 zA(Z5l@MAI)3RAX)Vlj?yk!|q_QNe1!k(tw6P?Q;#4@}AokF=)5V=D3Z4JE);A4pP5!3Px7FVovX-m*92(gLU6cI;@h3?dbR&=&%UmTB=2bA>G?r ztY-x|wxvb1gwVnkTi2}gd{wg{EYqwXnWNQgFr-Y=Df-OMvD=5ielKtB9eEe7QTMQy zUf2KXVcpgqw$0V3QnMOs_&kNAM~JFC2l^*`a?7V{f}go<}suU?%?f?A<-L%R*W z5g|UybYNKEF+JvYBS5c^3&#Vz7z#wr#Um?>8afr$aV`eoTDB|A!3d}HHa;uWFjypV zf~bBVwj|3`qA7>>4k*~@RfD0u}ZCKOKdzXOn*lZ9aJv`;irT0V))UJNGdgsJVik;3XlWTIzbEo z%9ie#d-LX-OD$6A+sjoM_fg4xboKm$q5DIRlIcrq=2A$4=Ts;iy^@JeN$_~5q+^LS zcTy_33felUKGfDpeTdo+0rM<1sMZFtc7Y0DmkU$`nTUWHr6!OWrIN@*1k7txCk@PN zR4)xoM8G^re}u?K4`Z8;9>F#Zom6Yrs8M7_sSpjTyFi7p)}f-3F?!~5)=@qa%@&m2 zsJ>o(>#ccqacp61*|+-cgU0)fQe(GN)3dg>_i;gQ*0nq1+Aq2GFCF^o*q6udblvN} z+yC%zdfk20vGkUI&GpH)q~7@K`e#d3nYuQquIX&)aJ~+o@X~JUh}-tDWEHTi51SnX^Vi`Mjzqoamd*_* zufwNq9TlT(e*W;uH-L7xjXwa0Z$wawpbh~>O}+_1Gk_OIM2|&8^c=)-tq7j`4!}%S z`3`^-9lryJuyL0R46R_cpx+&Xs}N!1yFl*&=F08Eq~N<=$ut?j%ozgi%qg$(mA^vq z9vH>roL2Ib(9gezj1~ZLzIwmhq7xngFTZoXflEg?aR74%NDd%*fV=2qm6ifL*Yax^ zDtrI{zKWe?8E1{;teH;H{0~ zFttG7Ejrxj0i~ABe@4Jv59xJNvK=;642*Cs2IXdyZP#_=5h1e9sqbQFhT;}at6 zFAhtVYa5))9Ktar0AN|#Ujc|dKdHF5*IkJJCdA+`2ESh}^!uZ6b|QjwvEP4XA`nqq zc)SAT-3Sby1M9_m=(hFuowRGcRsn@T zRRP$jqUdU6O3FAl#aHPv_!CIs3#kbI!G2VoWINvtJluW(@8Q3rNs|04;rO1pM3U9( J1VUxhe*qIriP-=E diff --git a/CytoSim/__pycache__/slider.cpython-312.pyc b/CytoSim/__pycache__/slider.cpython-312.pyc deleted file mode 100644 index ca00cceb5542b866f22ab30d3bfe1347745487af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2779 zcmai0O>7fK6rT0&+MC#p6JipQ*brKfFfB0@MEO%yAc3YyoGK)Ox{h}5bQH$+rb;?lm^_1ae0l+pUl zo0&In-n{p|H~!V@twzxNfBk)KCyUS@WMDO>$gJ)LW(EmJpi(G`1V@w-=%_IoD_z6mmpPgj~9FG&2+% z7Imgij4L{W33UxiY5sgH1x)OM!LTqI6Lr@Rj-5R#3L#EsWHEJ4r!MGJMyJMgDuLag z7<+)|ZYeD(QY=Nb%H-Ou#rASNd8*sJhS?m}IVaR$(8Cmplmr7yOK%nv!u8UBn^a=wGa+wiL=+VEJ(si&6;T#t}ma3$ib?OwaMC7^A-@msS>qs6I?g<}4%W5p&*vfQ6@tRvf8ma#a2%0iSa^iasi{bwZbp&Cs5 ztuq3Sjbq|uojKWe^kYo!jlG1Fvzi^31SO$6;}VXiM4j&IXxC{e4RDEzX+^{t-I)-j zp@ag(!$(v( zAL!H$bS~}qaIyVS=flo?_n_82xb$gE>yG`#oy8<*_LvdCp)-JhBuK1nN(p6lS@ziu z@J1WNvxJ@U{$y2|w>UV%1`k#aVQy`u%e>wy8@w1+aRTI7Wz~G`{cI3pX!;KBXM_TJMG z6V9IaNQyipqay^V^yr9;Nvw5mh4jEjy4x7`^!9i5MojPrK+1T{j0&LB@Dc)%(neJX zF($%U@jO5up2?9h8St%FrNwdb=#7aosix%BGqA3EiY361&(;?~UpYxUE-wR_Km~X0 z^r5LkHyiRzVXZ0r*c~qT>ZdbPnY?ei=G&eV=cHNbsc&~-%bQo3uRPCbRJ&)zyJ0#y z6}`DX-xAhZ!jHY-LQCsp`<3oOd105gtE${oG&_EpzPaGP0S z<}S`&)PnEa74A#-r28ZHMzlc3qW@9gVPNUZVE&At!PhBh0dXmj$|n>JzJPMIYB|`N z^Unol19#-R`|cmPcjQ6SlW^CQU^f_8{k#g*2EfXiHlut*LQe9er{P}*&+FAZKRhCg zL3!kL56^!-7E75cnB<31B=K(GZX;u}SvpCIV?s#vmdQhN8NFawHu$23W#iOpjhpSE zOnD*|a+)c^p8lY-zXOvb)!Ad+M~`=5@(<3?g!d7SlsDsum)sH4toQJ{Fh|}e8OjuT mPE!>1JMyk@jT3Ca)iA*nxH{mRbrbYIObgXRy+DK-n*IY=;|1ve diff --git a/CytoSim/main.py b/CytoSim/main.py deleted file mode 100644 index cb37ebf..0000000 --- a/CytoSim/main.py +++ /dev/null @@ -1,168 +0,0 @@ -import pygame -import numpy as np -import matplotlib.pyplot as plt -import math -from particle import Particle -from sensor import Sensor -from slider import Slider - -pygame.init() - -SCREEN_WIDTH = 800 -SCREEN_HEIGHT = 600 - -SENSOR_DISTANCE = 200 -REST_MEDIUM = 180000 - -y_lim = 40000 -y_lim2 = 0.000000000005 - - -screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT)) - -sensor = Sensor(width = 50, distance = SENSOR_DISTANCE, space = 300) -sensor.inputVoltage(5, -5) - - - -silica = Particle(speed = 1, size = 60, perm = 4, rest = pow(10, 12)) - -time = .1 -time_data = [] -volume_data = [] -sensor_data = [] -rest_data = [] -current1_data = [] -current2_data = [] - - -plt.ion() -fig, (ax, ax2) = plt.subplots(2, 1, figsize=(10, 10)) -line, = ax.plot([], [], 'r-') -line2, = ax.plot([], [], 'g-') -line3, = ax2.plot([], [], 'b-') -line4, = ax2.plot([], [], 'g-') -ax.set_xlim(0, 900) -ax.set_ylim(-0.01, y_lim) -ax.set_xlabel('Time (s)') -ax.set_ylabel('Volume') -ax.set_title('Volume/time') - -ax2.set_xlim(0, 900) -ax2.set_ylim(-1 * y_lim2, y_lim2) -ax2.set_xlabel('Time (s)') -ax2.set_ylabel('Current') -ax2.set_title('Current/time') - -slider1 = Slider(20, 20, 100, 20, 20, SENSOR_DISTANCE / 2, 80) -slider2 = Slider(20, 50, 100, 20, .1, 10, 1) -slider3 = Slider(20, 80, 100, 20, 1, 100, 10) - -run = True -while run: - - timeScale = slider2.value - sensor.inputVoltage(slider3.value, -1 * slider3.value) - - distance = silica.move(time) - if distance > SCREEN_WIDTH + (silica.size * 2): - time =.1 - time_data = [] - volume_data = [] - sensor_data = [] - rest_data = [] - current1_data = [] - current2_data = [] - - screen.fill((0,0,0)) - - sensor.generate(SCREEN_WIDTH, SCREEN_HEIGHT, screen) - - pygame.draw.circle(screen, (255, 255, 255), (distance - silica.size, 300), silica.size) - pygame.draw.circle(screen, (0,255,0), (distance - silica.size, 300), 10) - - slider1.draw(screen) - slider2.draw(screen) - slider3.draw(screen) - - silica.updateSize(slider1.value) - - for event in pygame.event.get(): - if event.type == pygame.QUIT: - run = False - slider1.handle_event(event) - slider2.handle_event(event) - slider3.handle_event(event) - - volume = sensor.getParticleVolume(distance, silica) - - sensor_data_volume = sensor.volume - volume - sensor_data.append(sensor_data_volume) - - sensor_resistance = REST_MEDIUM * ((pow(sensor.distance, 2) * pow(10, -18)) / (sensor_data_volume * pow(10, -27))) - nom_sens_res = REST_MEDIUM * ((sensor.distance * pow(10, -9)) / (sensor.width * sensor.distance * pow(10, -18))) - - if volume: - particle_resistance = silica.rest * pow((3/(16 * pow(math.pi, 2) * volume * pow(10, -9))), 1/3) - total_resistance_inv = (1 / particle_resistance) + (1 / sensor_resistance) - else: - particle_resistance = 0 - total_resistance_inv = 1 / sensor_resistance - - total_resistance = 1 / total_resistance_inv - - current1 = 0 - current2 = 0 - - - which_sensor = sensor.whichSensor(distance, silica) - if which_sensor == 1: - current1 = sensor.voltage1 / total_resistance - current2 = sensor.voltage2 / nom_sens_res - elif which_sensor == 2: - current2 = sensor.voltage2 / total_resistance - current1 = sensor.voltage1 / nom_sens_res - else: - current1 = sensor.voltage1 / nom_sens_res - current2 = sensor.voltage2 / nom_sens_res - - current1_data.append(current1) - current2_data.append(current2) - print(f"{current1} = {sensor.voltage1} / {total_resistance}") - rest_data.append(total_resistance) - - if (volume > y_lim): - y_lim = volume + (volume * 1.2) - ax.set_ylim(-1000, y_lim) - - if (current1 > y_lim2): - y_lim2 = current1 + (current1 * 1.2) - ax2.set_ylim(-1 * y_lim2, y_lim2) - - - - time_data.append(time) - volume_data.append(volume) - - line.set_xdata(time_data) - line.set_ydata(volume_data) - line2.set_xdata(time_data) - line2.set_ydata(sensor_data) - line3.set_xdata(time_data) - line3.set_ydata(current1_data) - line4.set_xdata(time_data) - line4.set_ydata(current2_data) - ax.relim() - ax.autoscale_view() - ax2.relim() - ax2.autoscale_view() - plt.draw() - plt.pause(0.01) - - pygame.display.update() - - time = timeScale + time - -pygame.quit() - - diff --git a/CytoSim/particle.py b/CytoSim/particle.py deleted file mode 100644 index 338b020..0000000 --- a/CytoSim/particle.py +++ /dev/null @@ -1,23 +0,0 @@ -import math - -class Particle: - def __init__(self, speed, size, perm, rest): - self.speed = speed - self.size = size - self.perm = perm - self.rest = rest - self.volume = (4/3.0) * math.pi * size * size * size - - def move(self, time): - distance = self.speed * time - return distance - - def partialVol(self, height): - partialVol = (1/3) * math.pi * height * height * ((3 * self.size) - height) - return partialVol - - def updateSize(self, size): - self.size = size - self.volume = (4/3) * math.pi * size * size * size - - diff --git a/CytoSim/sensor.py b/CytoSim/sensor.py deleted file mode 100644 index 6e53002..0000000 --- a/CytoSim/sensor.py +++ /dev/null @@ -1,95 +0,0 @@ -import pygame - -class Sensor: - def __init__(self, width, distance, space): - self.width = width - self.distance = distance - self.space = space - self.volume = width * pow(distance, 2) - - def generate(self, screenWidth, screenHeight, screen): - self.sensor1_x = (screenWidth / 2) - (self.space / 2) - self.width - self.sensor1_y = 0 - self.sensor1_x_size = self.width - self.sensor1_y_size = (screenHeight / 2) - (self.distance / 2) - - self.inner1 = self.sensor1_x - self.outer1 = self.inner1 + self.width - - sensor1a = pygame.Rect(self.sensor1_x, self.sensor1_y, self.sensor1_x_size, self.sensor1_y_size) - sensor1b = pygame.Rect(self.sensor1_x, self.sensor1_y + self.sensor1_y_size + self.distance, self.sensor1_x_size, self.sensor1_y_size) - pygame.draw.rect(screen, (0, 0, 255), sensor1a) - pygame.draw.rect(screen, (0, 0, 255), sensor1b) - - self.sensor2_x = (screenWidth / 2) + (self.space / 2) - self.sensor2_y = 0 - self.sensor2_x_size = self.width - self.sensor2_y_size = (screenHeight / 2) - (self.distance / 2) - - self.inner2 = self.sensor2_x - self.outer2 = self.inner2 + self.width - - sensor2a = pygame.Rect(self.sensor2_x, self.sensor2_y, self.sensor2_x_size, self.sensor2_y_size) - sensor2b = pygame.Rect(self.sensor2_x, self.sensor2_y + self.sensor2_y_size + self.distance, self.sensor2_x_size, self.sensor2_y_size) - pygame.draw.rect(screen, (0, 0, 255), sensor2a) - pygame.draw.rect(screen, (0, 0, 255), sensor2b) - - def testSensor1(self, partCenter, particle): - if (particle.size >= abs(self.inner1 - (partCenter - particle.size))) and (particle.size >= abs(self.outer1 - (partCenter - particle.size))): - volume = ((particle.volume / 2) - (particle.partialVol(particle.size - ((partCenter - particle.size) - self.inner1)))) + ((particle.volume / 2) - particle.partialVol(particle.size - (self.outer1 - (partCenter - particle.size)))) - return volume - elif particle.size >= abs(self.inner1 - (partCenter - particle.size)): - volume = particle.partialVol(particle.size - (self.inner1 - (partCenter - particle.size))) - return volume - elif particle.size >= abs(self.outer1 - (partCenter - particle.size)): - volume = particle.volume - particle.partialVol(particle.size - (self.outer1 - (partCenter - particle.size))) - return volume - elif ((partCenter - particle.size) >= self.inner1 and (partCenter - particle.size) <= self.outer1): - volume = particle.volume - return volume - else: - return 0 - - def testSensor2(self, partCenter, particle): - if (particle.size >= abs(self.inner2 - (partCenter - particle.size))) and (particle.size >= abs(self.outer2 - (partCenter - particle.size))): - volume = ((particle.volume / 2) - (particle.partialVol(particle.size - ((partCenter - particle.size) - self.inner2)))) + ((particle.volume / 2) - particle.partialVol(particle.size - (self.outer2 - (partCenter - particle.size)))) - return volume - elif particle.size >= abs(self.inner2 - (partCenter - particle.size)): - volume = particle.partialVol(particle.size - (self.inner2 - (partCenter - particle.size))) - return volume - elif particle.size >= abs(self.outer2 - (partCenter - particle.size)): - volume = particle.volume - particle.partialVol(particle.size - (self.outer2 - (partCenter - particle.size))) - return volume - elif ((partCenter - particle.size) >= self.inner2 and (partCenter - particle.size) <= self.outer2): - volume = particle.volume - return volume - else: - return 0 - - def getParticleVolume(self, partCenter, particle): - volume1 = self.testSensor1(partCenter, particle) - #volume1 = 0 - volume2 = self.testSensor2(partCenter, particle) - - if volume1: - return volume1 - elif volume2: - return volume2 - else: - return 0 - - def whichSensor(self, partCenter, particle): - volume1 = self.testSensor1(partCenter, particle) - #volume1 = 0 - volume2 = self.testSensor2(partCenter, particle) - - if volume1: - return 1 - elif volume2: - return 2 - else: - return 0 - - def inputVoltage(self, voltage1, voltage2): - self.voltage1 = voltage1 - self.voltage2 = voltage2 diff --git a/CytoSim/slider.py b/CytoSim/slider.py deleted file mode 100644 index 304e27d..0000000 --- a/CytoSim/slider.py +++ /dev/null @@ -1,35 +0,0 @@ -import pygame - -WHITE = (255, 255, 255) -GRAY = (200, 200, 200) -BLACK = (0, 0, 0) -RED = (255, 0, 0) - -class Slider: - - def __init__(self, x, y, w, h, min_val, max_val, initial_val): - self.rect = pygame.Rect(x, y, w, h) - self.min_val = min_val - self.max_val = max_val - self.value = initial_val - self.grabbed = False - - def draw(self, screen): - # Draw the background - pygame.draw.rect(screen, GRAY, self.rect) - # Draw the handle (circle) - handle_x = self.rect.x + (self.value - self.min_val) / (self.max_val - self.min_val) * self.rect.width - pygame.draw.circle(screen, RED, (int(handle_x), self.rect.centery), self.rect.height // 2) - - def handle_event(self, event): - if event.type == pygame.MOUSEBUTTONDOWN: - if self.rect.collidepoint(event.pos): - self.grabbed = True - elif event.type == pygame.MOUSEBUTTONUP: - self.grabbed = False - elif event.type == pygame.MOUSEMOTION: - if self.grabbed: - mouse_x = event.pos[0] - # Constrain the handle within the slider - new_value = (mouse_x - self.rect.x) / self.rect.width * (self.max_val - self.min_val) + self.min_val - self.value = max(self.min_val, min(self.max_val, new_value)) diff --git a/__pycache__/particle.cpython-312.pyc b/__pycache__/particle.cpython-312.pyc index fec941180d9e7b79c5dab05490381b68480dfa3c..0ae13976f31ad13473ee0183fc16c42d97eb491d 100644 GIT binary patch delta 35 qcmZ3(y@i|WG%qg~0}!0KxRI-ikWHg;Tl~HT+amKgI0CNfmHUIzs diff --git a/__pycache__/sensor.cpython-312.pyc b/__pycache__/sensor.cpython-312.pyc index b98724ea6ef227bb99c14e0c795b1443f36bf83c..23818587c526b25e669bf7d434e72164dc22cae1 100644 GIT binary patch delta 35 pcmX?adfk-kG%qg~0}!0KxREP~kF$ delta 31 mcmaDXdRvtHG%qg~0}zNj`?`_)5hJ7V max_points: + time_data.pop(0) + volume_data.pop(0) + sensor_data.pop(0) + current1_data.pop(0) + current2_data.pop(0) distance = silica.move(time) if distance > SCREEN_WIDTH + (silica.size * 2): diff --git a/test.txt b/test.txt deleted file mode 100644 index e69de29..0000000