Please consider using the “What are you working on currently?” topic!
I have thought ChatGPT is even more smarter than the most scientifics of Roblox , iasked him to make something cool and this it what it does
And this script to build an grid of parts making a turbulence effect of RGB random colors and extra options:
-- Settings local partSize = Vector3.new(.4, .4, .1) -- Size of each part local gridSize = 200 -- Number of parts along one side of the grid local gridCenter = Vector3.new(0, 0, 0) -- Center of the grid local noiseScale = 0.1 -- Scale of Perlin noise for turbulence smoothness local turbulenceScale = 1 -- Intensity of the turbulence local colorSpeed = 0.8 -- Speed of color changes local movementSpeed = 0.5 -- Speed of turbulence pattern movement local parentModelName = "FlowingTurbulenceGrid" -- Name of the Model to group the parts -- Create a parent model to hold the parts local model = Instance.new("Model") model.Name = parentModelName model.Parent = workspace -- Function to generate turbulence-like RGB colors local function turbulenceToColor(x, y, timeOffset) -- Create a turbulence effect by combining multiple noise values local offsetX = math.noise(x * noiseScale, y * noiseScale, timeOffset * movementSpeed) * turbulenceScale local offsetY = math.noise(x * noiseScale + 10, y * noiseScale, timeOffset * movementSpeed) * turbulenceScale -- Compute the Perlin noise for RGB using turbulence offsets local r = math.noise(x * noiseScale + offsetX, y * noiseScale + offsetY, timeOffset * colorSpeed) local g = math.noise(x * noiseScale + offsetY, y * noiseScale - offsetX, timeOffset * colorSpeed) local b = math.noise(x * noiseScale - offsetX, y * noiseScale - offsetY, timeOffset * colorSpeed) -- Map values from [-1, 1] to [0, 1] r = math.clamp((r + 1) / 2, 0, 1) g = math.clamp((g + 1) / 2, 0, 1) b = math.clamp((b + 1) / 2, 0, 1) return Color3.new(r, g, b) end -- Calculate half grid size for centering local halfGridSize = (gridSize - 1) * partSize / 2 -- Store parts for animation local parts = {} -- Generate the grid of parts for x = 0, gridSize - 1 do for y = 0, gridSize - 1 do -- Calculate part position local posX = gridCenter.X + (x * partSize.X - halfGridSize.X) local posY = gridCenter.Y + (y * partSize.Y - halfGridSize.Y) local posZ = gridCenter.Z -- Flat 2D grid on the Z-axis local position = Vector3.new(posX, posY, posZ) -- Create and configure the part local part = Instance.new("Part") part.Size = partSize part.Position = position part.Anchored = true part.Parent = model table.insert(parts, {Part = part, GridX = x, GridY = y}) end end -- Animate the colors for flowing turbulence effect game:GetService("RunService").Heartbeat:Connect(function(deltaTime) local time = wait() * movementSpeed -- Use `tick()` to create a time offset for _, data in pairs(parts) do local part = data.Part local x = data.GridX local y = data.GridY -- Assign dynamic color based on turbulence-like noise part.Color = turbulenceToColor(x, y, time) end end) And the version for UI , had a Surface UI with the Script and a Frame
-- Settings local gridSize = 200 -- Number of Frames along one side of the grid (fixed size) local frameSize = UDim2.new(0, 10, 0, 10) -- Size of each Frame (can be smaller for higher resolution) local gridSpacing = UDim2.new(0, 0, 0, 0) -- Spacing between Frames (0 for seamless turbulence) local noiseScaleX = 0.1 -- Perlin noise scale for X-axis resolution local noiseScaleY = 0.1 -- Perlin noise scale for Y-axis resolution local turbulenceScale = 5 -- Intensity of the turbulence effect local colorSpeed = 0.8 -- Speed of color changes local movementSpeed = 0.5 -- Speed of turbulence pattern movement local parentFrameName = "Frame" -- Name of the parent Frame holding the grid -- Find the parent Frame in the UI local parentFrame = script.Parent:FindFirstChild(parentFrameName) if not parentFrame or not parentFrame:IsA("Frame") then error("Parent Frame with the name '" .. parentFrameName .. "' not found or is not a Frame!") end -- Calculate grid layout size local totalSizeX = gridSize * frameSize.X.Offset + (gridSize - 1) * gridSpacing.X.Offset local totalSizeY = gridSize * frameSize.Y.Offset + (gridSize - 1) * gridSpacing.Y.Offset local gridStartPos = UDim2.new(0.5, -totalSizeX / 2, 0.5, -totalSizeY / 2) -- Center the grid -- Store frames for animation local frames = {} -- Function to generate turbulence-like RGB colors with pattern movement local function turbulenceToColor(x, y, timeOffset) -- Generate Perlin noise with different scaling for X and Y for a higher resolution pattern local offsetX = math.noise(x * noiseScaleX, y * noiseScaleY, timeOffset * movementSpeed) * turbulenceScale local offsetY = math.noise(x * noiseScaleX + 10, y * noiseScaleY, timeOffset * movementSpeed) * turbulenceScale -- Compute the Perlin noise for RGB using turbulence offsets local r = math.noise(x * noiseScaleX + offsetX, y * noiseScaleY + offsetY, timeOffset * colorSpeed) local g = math.noise(x * noiseScaleX + offsetY, y * noiseScaleY - offsetX, timeOffset * colorSpeed) local b = math.noise(x * noiseScaleX - offsetX, y * noiseScaleY - offsetY, timeOffset * colorSpeed) -- Map values from [-1, 1] to [0, 1] r = math.clamp((r + 1) / 2, 0, 1) g = math.clamp((g + 1) / 2, 0, 1) b = math.clamp((b + 1) / 2, 0, 1) return Color3.new(r, g, b) end -- Create the grid of Frames for x = 0, gridSize - 1 do for y = 0, gridSize - 1 do -- Calculate frame position local posX = gridStartPos.X.Offset + x * (frameSize.X.Offset + gridSpacing.X.Offset) local posY = gridStartPos.Y.Offset + y * (frameSize.Y.Offset + gridSpacing.Y.Offset) local position = UDim2.new(0, posX, 0, posY) -- Create and configure the Frame local frame = Instance.new("Frame") frame.Size = frameSize frame.Position = position frame.BackgroundColor3 = Color3.new(0, 0, 0) -- Default color frame.BorderSizePixel = 0 -- No border for seamless grid frame.Parent = parentFrame table.insert(frames, {Frame = frame, GridX = x, GridY = y}) end end -- Animate the colors for flowing turbulence effect game:GetService("RunService").Heartbeat:Connect(function(deltaTime) local time = wait() * movementSpeed -- Use `tick()` to create a time offset for _, data in pairs(frames) do local frame = data.Frame local x = data.GridX local y = data.GridY -- Assign dynamic color based on turbulence-like noise frame.BackgroundColor3 = turbulenceToColor(x, y, time) end end) Note : I used ChatGPT to do it because im noob at programming ,also i made it when i was bored , i thought is a good idea for Dream Core games and ok i have tips to do if this script could power Roblox Imagitacion as the tagline says
To-Do List for Future Updates:
- Test grid scaling and resolution across different screen sizes.
- Add performance optimization for larger grid sizes or lower-end devices.
- Implement UI sliders for real-time adjustments of
gridSize,frameSize,movementSpeed, andcolorSpeed. - Add custom color gradients for more control over the turbulence pattern colors.
- Implement other noise types (e.g., Simplex or Value Noise) to create smoother, more visually appealing transitions.
- Experiment with interactivity (e.g., mouse click interactions, animations) to make the grid more engaging.
- Add debugging features to visualize current parameters and performance.
Oh oooh, also replace tick() with wait() in one of these codes to make it animated i’ve forgor that