Snowflake() constructor
In JavaScript classes, the constructor runs once per 'new' object. Delegating the actual setup work to a separate reset() method is a handy pattern - it lets you reuse the same initialization logic both when the object is first created and later when you want to recycle it (as this sketch does when a snowflake lands).
constructor() {
this.reset();
}
Line-by-line explanation (2 lines)
constructor() {- This special method runs automatically whenever you write 'new Snowflake()' - it's where a new object gets set up.
this.reset();- Instead of duplicating setup code, the constructor just calls reset(), which assigns all the starting properties (position, size, speed). This means a snowflake can be 'reborn' later by calling reset() again without creating a brand new object.