Ah thanks!
The starfield is a single star image, added every x seconds with random scale and velocity :
package org.sturgeon.sweeper.systems import com.badlogic.ashley.core.Entity import com.badlogic.ashley.systems.IntervalSystem import com.badlogic.gdx.graphics.Texture import com.badlogic.gdx.math.MathUtils import org.sturgeon.sweeper.Assets import org.sturgeon.sweeper.components.BoundsCheckComponent import org.sturgeon.sweeper.components.MovementComponent import org.sturgeon.sweeper.components.PositionComponent import org.sturgeon.sweeper.components.VisualComponent class StarfieldSystem(var i:Float) : IntervalSystem(i) { override fun updateInterval() { var star = Entity() var t = Texture(Assets.STAR) var pc = PositionComponent(Assets.VIEWPORT_WIDTH+100, MathUtils.random(0f, Assets.VIEWPORT_HEIGHT), t.width.toFloat(), t.height.toFloat()) var scale = MathUtils.random(0.1f, 1.2f) pc.scaleX = scale pc.scaleY = scale star.add(pc) star.add(VisualComponent(t, 0)) star.add(MovementComponent(MathUtils.random(-300f, -100f), 0f)) star.add(BoundsCheckComponent()) engine.addEntity(star) } }