New version after 9 days


Absolutely no new features in this version, but the internals are radically rewritten. Nitty-gritty details are in this blog post from July. The new core has been in use for a while now and seems stable. Feel free to switch to it on your own schedule; it should seem indistinguishable from the previous version. The new version is smaller (105KB rather than 121KB) and has a lot fewer moving parts. It will be an improvement over time, but might still have the odd (and likely easily fixed) bug. Please report any issues you find.

We've been seeing more frequent updates in the last couple of months, but the app should still feel stable, and I hope the cadence of updates will slow down once again.

Today's example program is by way of curved-ruler:

function car.draw()
  local mx, my = love.mouse.getPosition()
  mx = mx - Safe_width/2
  my = my - Safe_height/2
  for y = 1,Safe_height do
    for x = 1,Safe_width do
      color(col(x,y, mx, my))
      pt(x,y)
    end
  end
end
function col(x, y, mx, my)
  x, y = x/10, y/10
  mx, my = mx/10, my/10
  local zx, zy = sin(x), cos(y)
  local fzx, fzy = cdiv(zx+mx, zy+sin(my), zx-mx, zy-my)
  local p = math.atan2(fzy, fzx)
  local t = p - floor(p)
  return geoffrey(t)
end
function cdiv(a,b, c,d)
  local dr = c*c + d*d
  local r = (a*c + b*d) / dr
  local im = (b*c + a*d) / dr
  return r, im
end
function geoffrey(t)
  local px, py, pz = 1.8, 1.14, 0.3
  px = t*2.1 - px
  py = t*2.1 - py
  pz = t*2.1 - pz
  px = 1 - px*px
  py = 1 - py*py
  pz = 1 - pz*pz
  return px, py, pz
end

Try hovering the mouse near the center of the screen to see the most interesting patterns.

Don't forget to first run the abbreviations on one of the example screens. Or if you've deleted that screen, here are the abbreviations I used in this post:

g = love.graphics
pt = g.points
color = g.setColor
floor = math.floor
cos, sin = math.cos, math.sin

Files

carousel2-ai.love 104 kB
2 days ago

Get Lua Carousel

Leave a comment

Log in with itch.io to leave a comment.