local A, B = 0, 0 local chars = ".,-~:;=!*#$@" while task.wait(0.05) do local b = table.create(1760, " ") local z = table.create(1760, 0) for j = 0, 6.28, 0.07 do for i = 0, 6.28, 0.02 do local sin_i, cos_j = math.sin(i), math.cos(j) local sin_A, sin_j = math.sin(A), math.sin(j) local cos_A, cos_i = math.cos(A), math.cos(i) local cos_B, sin_B = math.cos(B), math.sin(B) local h = cos_j + 2 local D = 1 / (sin_i * h * sin_A + sin_j * cos_A + 5) local t = sin_i * h * cos_A - sin_j * sin_A local x = math.floor(40 + 30 * D * (cos_i * h * cos_B - t * sin_B)) local y = math.floor(12 + 15 * D * (cos_i * h * sin_B + t * cos_B)) local o = x + 80 * y + 1 local N = math.floor(8 * ((sin_j * sin_A - sin_i * cos_j * cos_A) * cos_B - sin_i * cos_j * sin_A - sin_j * cos_A - cos_i * cos_j * sin_B)) if y < 22 and y > 0 and x > 0 and x < 80 and D > (z[o] or 0) then z[o] = D local char_idx = math.clamp(N + 1, 1, #chars) b[o] = string.sub(chars, char_idx, char_idx) end end end local output = "\n" for k = 1, 1760 do output = output .. (k % 80 == 0 and "\n" or b[k]) end print(output) A += 0.1 B += 0.05 end