Math (+ 1 3) = 4 (+ 4 4 (+ 3 1) 4) = 16 Vars (let* ( (var1 123) (var2 321) ) (+ var1 var2) ) (let* ((var1 123)(var2 321))(+ var1 var2)) = 444 (let* ((x1 123))(set! x1 321)) = 321 (let* ((x1 123))(set! x1 (+ x1 x1))) = 246 (let* ((x1 123))(set! x1 321)(+ x1 x1)) = 642 Loops (let* ((i 0)) (while (< i 5) (set! i (+ i 1))) i) Funcs (define ( functionName var1 var2 var3 ) (+ var1 var2 var3) ) (define (functionName var1 var2 var3)(+ var1 var2 var3)) (functionName 1 2 3) = 6 Get list of layers * image = number in title * Image must have two layers; bottom heightmap, top skin (let* ( (image 5) (layers (gimp-image-get-layers 5)) (width 800) (height 600) (height2 300) (offset 300) (heightmap 0) (skin 0) (heightmap2 0) (skin2 0) (target 0) ) ;Undo for the whole thing (gimp-undo-push-group-start image) ;Get existing layers (set! heightmap (aref (cadr layers) 1)) (set! skin (aref (cadr layers) 0)) ;Copy layers (set! heightmap2 (car (gimp-layer-copy heightmap image))) (gimp-image-add-layer image heightmap2 -1) (set! skin2 (car (gimp-layer-copy skin image))) (gimp-image-add-layer image skin2 -1) ;Resize layers (gimp-layer-scale heightmap2 width height2 0) (gimp-layer-translate heightmap2 0 height2) (gimp-layer-resize-to-image-size heightmap2) (gimp-layer-scale skin2 width height2 0) (gimp-layer-translate skin2 0 height2) (gimp-layer-resize-to-image-size skin2) ;Create target layer (set! target (car (gimp-layer-new image width height 1 "Result" 100 0))) (gimp-image-add-layer image target -1) ;Init selection (gimp-selection-all image) ;Loop through (let* ( (trans 0) (col 255) (pasted 0) (color '()) ) (while (> col -1) ;Copy selected and paste to current height (gimp-edit-copy skin2) (set! pasted (car (gimp-edit-paste target 1))) (gimp-floating-sel-to-layer pasted) (gimp-layer-translate pasted 0 trans) (set! target (car (gimp-image-merge-down image pasted 0))) ;Remove level from selected (set! color (list col col col)) (gimp-by-color-select heightmap2 color 0 1 0 0 0 0) ;Next step (set! trans (- trans 1)) (set! col (- col 1)) ) ) ;Display finished image (gimp-selection-clear image) (gimp-edit-copy target) (gimp-display-new (car (gimp-edit-paste-as-new))) ;Clean up (gimp-image-remove-layer image heightmap2) (gimp-image-remove-layer image skin2) (gimp-image-remove-layer image target) ;Undo for the whole thing (gimp-undo-push-group-end image) )