Skip to content

Instantly share code, notes, and snippets.

@danbri
Created June 8, 2025 09:43
Show Gist options
  • Select an option

  • Save danbri/f896f8a77830793a7d10cb4f4a73f04b to your computer and use it in GitHub Desktop.

Select an option

Save danbri/f896f8a77830793a7d10cb4f4a73f04b to your computer and use it in GitHub Desktop.
; Nighttime Scene with Advanced Hatching Techniques
; Generated for large format plotter
; Uses woodcut-style hatching for tone and texture
; Coordinate system: 0,0 at bottom-left, dimensions 400x300mm
; Initialize plotter
G21 ; Set units to millimeters
G90 ; Absolute positioning
G28 ; Home all axes
M3 S0 ; Pen up
G0 F3000 ; Set rapid movement speed
G1 F1500 ; Set drawing speed
; ===== BACKGROUND GRADIENT (Vertical hatching with varying density) =====
; Dark to light gradient using vertical lines with decreasing spacing
; Darkest area (bottom) - 1mm spacing
M3 S1000 ; Pen down
G0 X0 Y0
G1 X0 Y0
G1 X0 Y50
M3 S0 ; Pen up
G0 X1 Y0
M3 S1000 ; Pen down
G1 X1 Y50
M3 S0 ; Pen up
G0 X2 Y0
M3 S1000 ; Pen down
G1 X2 Y50
M3 S0 ; Pen up
; Continue pattern across width
G0 X3 Y0
M3 S1000
G1 X3 Y50
M3 S0
G0 X4 Y0
M3 S1000
G1 X4 Y50
M3 S0
G0 X5 Y0
M3 S1000
G1 X5 Y50
M3 S0
; Medium-dark area - 1.5mm spacing
G0 X0 Y50
M3 S1000
G1 X0 Y100
M3 S0
G0 X1.5 Y50
M3 S1000
G1 X1.5 Y100
M3 S0
G0 X3 Y50
M3 S1000
G1 X3 Y100
M3 S0
G0 X4.5 Y50
M3 S1000
G1 X4.5 Y100
M3 S0
; Medium area - 2mm spacing
G0 X0 Y100
M3 S1000
G1 X0 Y150
M3 S0
G0 X2 Y100
M3 S1000
G1 X2 Y150
M3 S0
G0 X4 Y100
M3 S1000
G1 X4 Y150
M3 S0
; Light area - 3mm spacing
G0 X0 Y150
M3 S1000
G1 X0 Y200
M3 S0
G0 X3 Y150
M3 S1000
G1 X3 Y200
M3 S0
; Very light area - 5mm spacing
G0 X0 Y200
M3 S1000
G1 X0 Y250
M3 S0
G0 X5 Y200
M3 S1000
G1 X5 Y250
M3 S0
; ===== MOON (Concentric circles with radial hatching) =====
; Position: X60 Y220, Radius: 25mm
; Outer edge circle
G0 X85 Y220
M3 S1000
G2 X85 Y220 I-25 J0 ; Full circle
M3 S0
; Inner concentric circles for depth
G0 X80 Y220
M3 S1000
G2 X80 Y220 I-20 J0
M3 S0
G0 X75 Y220
M3 S1000
G2 X75 Y220 I-15 J0
M3 S0
; Radial hatching inside moon (light texture)
G0 X60 Y245
M3 S1000
G1 X60 Y195
M3 S0
G0 X35 Y220
M3 S1000
G1 X85 Y220
M3 S0
G0 X42 Y237
M3 S1000
G1 X78 Y203
M3 S0
G0 X42 Y203
M3 S1000
G1 X78 Y237
M3 S0
; ===== TREES (Diamond shapes with crosshatching) =====
; Tree 1 (Left) with glowing eyes - Position X80
; Tree trunk - vertical lines
G0 X78 Y80
M3 S1000
G1 X78 Y130
M3 S0
G0 X79 Y80
M3 S1000
G1 X79 Y130
M3 S0
G0 X80 Y80
M3 S1000
G1 X80 Y130
M3 S0
G0 X81 Y80
M3 S1000
G1 X81 Y130
M3 S0
G0 X82 Y80
M3 S1000
G1 X82 Y130
M3 S0
; Tree 1 canopy outline (diamond)
G0 X80 Y180
M3 S1000
G1 X60 Y150
G1 X80 Y120
G1 X100 Y150
G1 X80 Y180
M3 S0
; Tree 1 canopy hatching (diagonal lines at 45°)
G0 X65 Y155
M3 S1000
G1 X75 Y165
M3 S0
G0 X67 Y153
M3 S1000
G1 X77 Y163
M3 S0
G0 X69 Y151
M3 S1000
G1 X79 Y161
M3 S0
G0 X71 Y149
M3 S1000
G1 X81 Y159
M3 S0
; Crosshatching at -45°
G0 X75 Y165
M3 S1000
G1 X65 Y155
M3 S0
G0 X77 Y163
M3 S1000
G1 X67 Y153
M3 S0
G0 X79 Y161
M3 S1000
G1 X69 Y151
M3 S0
; Eyes (small circles)
G0 X72 Y155
M3 S1000
G2 X72 Y155 I-1 J0
M3 S0
G0 X88 Y155
M3 S1000
G2 X88 Y155 I-1 J0
M3 S0
; Tree 2 (Center) - Position X200
; Trunk
G0 X198 Y80
M3 S1000
G1 X198 Y140
M3 S0
G0 X199 Y80
M3 S1000
G1 X199 Y140
M3 S0
G0 X200 Y80
M3 S1000
G1 X200 Y140
M3 S0
G0 X201 Y80
M3 S1000
G1 X201 Y140
M3 S0
G0 X202 Y80
M3 S1000
G1 X202 Y140
M3 S0
; Canopy outline
G0 X200 Y190
M3 S1000
G1 X175 Y155
G1 X200 Y120
G1 X225 Y155
G1 X200 Y190
M3 S0
; Dense crosshatching for darker tree
G0 X180 Y160
M3 S1000
G1 X190 Y170
M3 S0
G0 X182 Y158
M3 S1000
G1 X192 Y168
M3 S0
G0 X184 Y156
M3 S1000
G1 X194 Y166
M3 S0
G0 X186 Y154
M3 S1000
G1 X196 Y164
M3 S0
G0 X188 Y152
M3 S1000
G1 X198 Y162
M3 S0
G0 X190 Y150
M3 S1000
G1 X200 Y160
M3 S0
; Reverse diagonal
G0 X190 Y170
M3 S1000
G1 X180 Y160
M3 S0
G0 X192 Y168
M3 S1000
G1 X182 Y158
M3 S0
G0 X194 Y166
M3 S1000
G1 X184 Y156
M3 S0
; Tree 3 (Right) - Position X320
; Trunk
G0 X318 Y80
M3 S1000
G1 X318 Y135
M3 S0
G0 X319 Y80
M3 S1000
G1 X319 Y135
M3 S0
G0 X320 Y80
M3 S1000
G1 X320 Y135
M3 S0
G0 X321 Y80
M3 S1000
G1 X321 Y135
M3 S0
G0 X322 Y80
M3 S1000
G1 X322 Y135
M3 S0
; Canopy outline
G0 X320 Y185
M3 S1000
G1 X300 Y150
G1 X320 Y115
G1 X340 Y150
G1 X320 Y185
M3 S0
; Medium density hatching
G0 X305 Y155
M3 S1000
G1 X315 Y165
M3 S0
G0 X308 Y152
M3 S1000
G1 X318 Y162
M3 S0
G0 X311 Y149
M3 S1000
G1 X321 Y159
M3 S0
G0 X314 Y146
M3 S1000
G1 X324 Y156
M3 S0
; ===== WATER LILY PADS (Concentric ovals with radial lines) =====
; Lily pad 1 - Position X120 Y90
G0 X140 Y90
M3 S1000
G2 X100 Y90 I-20 J0 ; Ellipse approximation
G2 X140 Y90 I20 J0
M3 S0
; Inner detail lines
G0 X120 Y110
M3 S1000
G1 X120 Y70
M3 S0
G0 X100 Y90
M3 S1000
G1 X140 Y90
M3 S0
; Lily pad 2 - Position X280 Y95
G0 X300 Y95
M3 S1000
G2 X260 Y95 I-20 J0
G2 X300 Y95 I20 J0
M3 S0
G0 X280 Y115
M3 S1000
G1 X280 Y75
M3 S0
G0 X260 Y95
M3 S1000
G1 X300 Y95
M3 S0
; ===== ROCKS (Irregular shapes with stippling effect) =====
; Rock 1 - Large rock left
G0 X50 Y40
M3 S1000
G1 X70 Y45
G1 X75 Y35
G1 X65 Y25
G1 X45 Y30
G1 X50 Y40
M3 S0
; Stippling texture (short random lines)
G0 X52 Y35
M3 S1000
G1 X53 Y36
M3 S0
G0 X58 Y32
M3 S1000
G1 X59 Y33
M3 S0
G0 X65 Y38
M3 S1000
G1 X66 Y37
M3 S0
G0 X62 Y30
M3 S1000
G1 X63 Y29
M3 S0
; Rock 2 - Medium rock center
G0 X180 Y35
M3 S1000
G1 X200 Y40
G1 X205 Y30
G1 X195 Y20
G1 X175 Y25
G1 X180 Y35
M3 S0
; Stippling
G0 X185 Y30
M3 S1000
G1 X186 Y31
M3 S0
G0 X192 Y28
M3 S1000
G1 X193 Y27
M3 S0
G0 X198 Y33
M3 S1000
G1 X199 Y32
M3 S0
; Rock 3 - Small rock right
G0 X300 Y45
M3 S1000
G1 X315 Y48
G1 X318 Y38
G1 X310 Y28
G1 X295 Y32
G1 X300 Y45
M3 S0
; Small rocks scattered
G0 X30 Y55
M3 S1000
G2 X30 Y55 I-3 J0
M3 S0
G0 X150 Y25
M3 S1000
G2 X150 Y25 I-2 J0
M3 S0
G0 X250 Y60
M3 S1000
G2 X250 Y60 I-2.5 J0
M3 S0
; ===== DARK SILHOUETTE (Right side - solid fill with contour lines) =====
G0 X360 Y40
M3 S1000
G1 X380 Y45
G1 X385 Y35
G1 X380 Y25
G1 X370 Y20
G1 X355 Y25
G1 X360 Y40
M3 S0
; Solid fill with horizontal lines
G0 X358 Y38
M3 S1000
G1 X378 Y40
M3 S0
G0 X357 Y36
M3 S1000
G1 X379 Y38
M3 S0
G0 X358 Y34
M3 S1000
G1 X380 Y36
M3 S0
G0 X359 Y32
M3 S1000
G1 X378 Y34
M3 S0
G0 X360 Y30
M3 S1000
G1 X376 Y32
M3 S0
G0 X362 Y28
M3 S1000
G1 X374 Y30
M3 S0
; ===== FOREGROUND PATH (Curved stippling and texture) =====
; Horizontal textured area at bottom
G0 X0 Y15
M3 S1000
G1 X400 Y18
M3 S0
G0 X0 Y12
M3 S1000
G1 X400 Y15
M3 S0
; Texture marks along path
G0 X20 Y16
M3 S1000
G1 X22 Y14
M3 S0
G0 X45 Y17
M3 S1000
G1 X47 Y16
M3 S0
G0 X80 Y15
M3 S1000
G1 X82 Y17
M3 S0
G0 X120 Y16
M3 S1000
G1 X122 Y15
M3 S0
G0 X160 Y17
M3 S1000
G1 X162 Y16
M3 S0
G0 X200 Y15
M3 S1000
G1 X202 Y17
M3 S0
G0 X240 Y16
M3 S1000
G1 X242 Y15
M3 S0
G0 X280 Y17
M3 S1000
G1 X282 Y16
M3 S0
G0 X320 Y15
M3 S1000
G1 X322 Y17
M3 S0
G0 X360 Y16
M3 S1000
G1 X362 Y15
M3 S0
; ===== ATMOSPHERIC EFFECTS =====
; Add some fine texture lines for atmosphere
G0 X0 Y250
M3 S1000
G1 X100 Y255
M3 S0
G0 X150 Y260
M3 S1000
G1 X300 Y265
M3 S0
G0 X50 Y270
M3 S1000
G1 X200 Y275
M3 S0
; Final pen up and return to origin
M3 S0 ; Pen up
G0 X0 Y0 ; Return to origin
M30 ; Program end
; ===== HATCHING TECHNIQUE NOTES =====
; - Background: Vertical lines with varying density for tonal gradient
; - Moon: Concentric circles with radial hatching for luminous effect
; - Trees: Crosshatching at 45° angles, density varies by tree
; - Foliage: Dense crosshatching for dark areas, lighter for mid-tones
; - Water: Horizontal lines with occasional verticals for surface texture
; - Rocks: Stippling technique with short random marks
; - Path: Horizontal texture with directional marks
; - Silhouettes: Solid fill using closely spaced parallel lines
;
; Total estimated plot time: 45-60 minutes on large format plotter
; Pen changes recommended: Fine tip (0.3mm) for detail, medium (0.5mm) for fills
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment