Need help with a Unique UI design

I’m wanting to make a moving Frequency/Wavelength bar. I have NO CLUE how to do this or where to even start, I’m not even sure if it’s possible.

This is what I want it to be like, and be able to stretch and change the frequency, but I have no clue how I would manipulate a ui to act like this.

Basically it’s very complex and more context is needed

These notches are waves, the wavelength is the distance between the two points in each, and the frequency is how many waves exist.

I want to be able to change the wavelength (distance between the points) based on a value that I have. I don’t know how I would use UI like this, since from what I know UI doesn’t really like being curved or bent like this.

You might wanna use animations or tween service of the UI possibly try implement that with the UI wavelength somehow

Yeah so the hardest part about this is it’s gonna be on a surface gui.

Might wanna adjust this or implement it further as starting point

local frequencyBar = script.Parent:WaitForChild("FrequencyBar")

-- Initial size of the bar. Adjust the X value as needed.
local initialSize = frequencyBar.Size

-- Function to update the bar's size based on a new frequency value
-- For simplicity, this directly maps frequency to bar size. Adjust the mapping as needed.
local function updateFrequencyBar(frequency)
    -- Assuming frequency is a value between 0 and 1. Scale as needed.
    local newSize =, 0, initialSize.Y.Scale, initialSize.Y.Offset)
    frequencyBar.Size = newSize

-- Example: Update the bar size every second with a random value for demonstration
while true do
    wait(1) -- Wait for 1 second. Adjust the timing as needed.
    local newFrequency = math.random() -- Generates a random number between 0 and 1

did you just use ai to make this lol

I mean its possible if you want help or further doing the script

if I also changed the tile size and tweaked some things it might work

So you wanna animate the surface GUI with the actual properties or tweaking both images to radiate

I don’t understand the question, also I don’t think this is quite what I’m looking for, this is just stretching an image vs real sine wave being more like a string

1 Like