help@rskworld.in +91 93305 39277
RSK World
  • Home
  • Development
    • Web Development
    • Mobile Apps
    • Software
    • Games
    • Project
  • Technologies
    • Data Science
    • AI Development
    • Cloud Development
    • Blockchain
    • Cyber Security
    • Dev Tools
    • Testing Tools
  • About
  • Contact

Theme Settings

Color Scheme
Display Options
Font Size
100%
Back to Project
RSK World
star-pattern-maker
/
js
RSK World
star-pattern-maker
Star Pattern Maker - HTML5 Canvas + 3D Rendering + Physics Simulation + AI Patterns + Generative Audio + Modern UI + Glassmorphism Design
js
  • 3d-engine.js3.8 KB
  • ai-patterns.js5.6 KB
  • animations.js1.4 KB
  • audio.js1.3 KB
  • controls.js12.2 KB
  • export.js3.9 KB
  • filters.js3.5 KB
  • fractals.js3.5 KB
  • gallery.js2.5 KB
  • main.js1.9 KB
  • particles.js1.4 KB
  • physics.js1.7 KB
  • presets.js2.8 KB
  • randomizer.js1.4 KB
  • renderer.js7 KB
  • shaders.js6.5 KB
  • shapes.js1.7 KB
  • sound-gen.js4.4 KB
  • state.js1.9 KB
  • symmetry.js3.9 KB
  • themes.js1.4 KB
  • timeline.js4.2 KB
  • utils.js546 B
main.js
js/main.js
Raw Download
Find: Go to:
/* V7 Main Entry Point */
import { state } from './state.js';
import { draw } from './renderer.js';
import { resizeCanvas } from './utils.js';
import { initControls } from './controls.js';
import { renderGallery } from './gallery.js';
import { updateAnimations } from './animations.js';

console.log("V7 Main Module Loaded");

// Initialize immediately (Modules are deferred, so DOM is ready when this runs)
const canvas = document.getElementById('starCanvas');
const ctx = canvas.getContext('2d');
const container = document.getElementById('previewContainer');
const stats = document.getElementById('canvasDims');

if (!canvas || !container) {
    console.error("Critical: Canvas or Container not found!");
} else {
    // Init Modules
    initControls(canvas, ctx);
    renderGallery();

    // Resize & Initial Draw
    function handleResize() {
        resizeCanvas(canvas, container, stats);
        draw(ctx, canvas);
    }

    window.addEventListener('resize', handleResize);

    // Force initial sizing
    handleResize();

    // Animation Loop
    function loop() {
        // Run loop if ANY animation is active
        const shouldAnimate = state.speed > 0 ||
            state.audioMode ||
            state.particlesEnabled ||
            state.morphEnabled ||
            state.colorShiftEnabled ||
            state.pulseEnabled ||
            state.rainbowMode ||
            state.orbitEnabled ||
            state.gravityEnabled ||
            state.trailEnabled;

        if (shouldAnimate) {
            state.rotation += (state.speed * 0.005);
            updateAnimations(); // V13
            draw(ctx, canvas);
            requestAnimationFrame(loop);
        }
    }

    // Start Loop
    loop();

    // Expose Globals for debugging and controls
    window._triggerDraw = () => draw(ctx, canvas);
    window._triggerLoop = () => loop();
    window.state = state;
}
65 lines•1.9 KB
javascript

About RSK World

Founded by Molla Samser, with Designer & Tester Rima Khatun, RSK World is your one-stop destination for free programming resources, source code, and development tools.

Founder: Molla Samser
Designer & Tester: Rima Khatun

Development

  • Game Development
  • Web Development
  • Mobile Development
  • AI Development
  • Development Tools

Legal

  • Terms & Conditions
  • Privacy Policy
  • Disclaimer

Contact Info

Nutanhat, Mongolkote
Purba Burdwan, West Bengal
India, 713147

+91 93305 39277

hello@rskworld.in
support@rskworld.in

© 2026 RSK World. All rights reserved.

Content used for educational purposes only. View Disclaimer