Back to Features

    3D View

    Real-time OpenSCAD rendering. Every keystroke updates the preview instantly—no compile times, no waiting.

    Viewport Controls

    Left Click + Drag

    Rotate view

    Right Click + Drag

    Pan view

    Scroll

    Zoom in/out

    Click on shape

    Select geometry

    Shift + Click

    Multi-select

    Escape

    Deselect all

    Capabilities

    Real-time Rendering

    Every code change updates the 3D view instantly. No compile step, no F5 required. Just type and watch your model evolve.

    Click-to-Select

    Click any shape in the viewport to select it. The corresponding code highlights automatically, making it easy to understand complex models.

    Multi-File Projects

    Organize your code across multiple files. Use include() and use() just like standard OpenSCAD. Keep modules clean and reusable.

    Color Support

    Full color() support with named colors and RGB values. Preview your painted models before exporting—great for multi-material prints.

    STL Export

    Export your model as STL with one click. Ready for slicing in your favorite slicer. Supports both ASCII and binary formats.

    Axis Helper

    Always know your orientation. The axis helper shows X (red), Y (green), and Z (blue) to keep you grounded in 3D space.

    Write it, see it

    The 3D view updates in real-time as you type. This parametric phone stand code would render instantly, showing you exactly how changing base_width or angle affects the final model.

    • Sub-second feedback loop
    • No separate render step
    • Errors shown inline
    • Parameters update live
    phone_stand.scad
    // Parametric phone stand
    $fn = 64;
    
    base_width = 80;
    base_depth = 60;
    base_height = 5;
    angle = 70;
    
    module phone_stand() {
      // Rounded base
      hull() {
        translate([5, 5, 0])
          cylinder(h=base_height, r=5);
        translate([base_width-5, 5, 0])
          cylinder(h=base_height, r=5);
        translate([5, base_depth-5, 0])
          cylinder(h=base_height, r=5);
        translate([base_width-5, base_depth-5, 0])
          cylinder(h=base_height, r=5);
      }
      
      // Angled support
      translate([0, base_depth/2, base_height])
        rotate([angle, 0, 0])
          cube([base_width, 3, 50]);
    }
    
    phone_stand();