Skip to content

Instantly share code, notes, and snippets.

@rgchris
Last active April 3, 2026 19:44
Show Gist options
  • Select an option

  • Save rgchris/5eec1623610b6a123537cf7ebd8ad63b to your computer and use it in GitHub Desktop.

Select an option

Save rgchris/5eec1623610b6a123537cf7ebd8ad63b to your computer and use it in GitHub Desktop.
SVG Filters

SVG Filters

These examples showcase how to incorporate filters into my SVG creation DSL. Of interest is how language is used to represent the filter pipeline.

MDN describes Filters as akin to layers that stack one on top of the other. I'd suggest it's more like a series of operations that, starting with the target element, take the result of the preceding operation and apply a filter to it. The result of the final operation replaces the target element's initial appearance in the final composition.

Basic Usage

Within the SVG dialect, a filter pipeline is created using the FILTER function. It takes three arguments: an ID (issue!), a margin (pair! or none!), and the sequence of operations (block!). The ID can be used to refer to the filter later on. By default, SVG filters use a margin of 20% of the element's width and height allowing a space for filters to 'bleed' into. This is used for filters that expand beyond the bounds of the original shape, such as a blur. To retain the default margin, a NONE! value (_) can be used. Alternatively, a PAIR! value will set the margin as a percentage of the width and height of the original shape.

A filter can thus be created as follows:

filter #blur 10x10 [
    blur 5
]

Within an image, it can be accessed via the filter attribute on a given element:

svg/encode svg/create 200x100 [
    filter #blur 10x10 [
        blur 5
    ]

    circle #[fill: green] 50x50 40
    circle #[fill: green filter: #blur] 150x50 40
]

Filter Pipeline

As stated above, filters can include a series of filter operations that operate one after another.

filter #blur-and-erode 10x10 [
    blur 4
    erode 5
]

Results from each operation can be stored and used by/applied to subsequent operations using the REF! datatype:

filter #store-example 0x0 [
    set @blur blur 2
    set @red flood 'red
    with @blur blend @red 'normal
]

There are six default images that are accessible in the pipeline: @SourceGraphic, @SourceAlpha, @BackgroundImage, @BackgroundAlpha, @FillPaint, and @StrokePaint; though effectively only the first two are commonly implemented within browsers. The words source and alpha can be used to reference @SourceGraphic and @SourceAlpha respectively within the pipeline:

filter #background 0x0 [
    flood 'red
    composite alpha 'in
]

As with other aspects of SVG, filter elements can be animated, though this requires familiarity with attribute names:

filter #blur _ [
    animate blur 0 [
        keyframes-for 'stdDeviation 5 [
            begin 0.5

            at 0 0
            at 33.333% 5
            at 66.667% 8
            at 100% 0
        ]
    ]
]

Example

This is but a brief introduction to how filters can be utilised. The example below shows some of the filters can be applied within the SVG creation dialect.

Rebol [
Title: "SVG Filters Examples"
Author: "Christopher Ross-Gill"
Needs: [
r3:rgchris:svg
]
]
if not exists? %philly.jpg [
write %philly.jpg load https://gist.githubusercontent.com/rgchris/5eec1623610b6a123537cf7ebd8ad63b/raw/442caa86b570dd7105c8d8e4b72529792027c381/philly.reb
]
assets: #[
size: 200x200
image: %philly.jpg
image-size: 320x320
data: (to url! join "data:image/jpeg;base64," enbase read %philly.jpg 64)
matrices: #[
color: #[
see: https://alistapart.com/article/finessing-fecolormatrix/
desaturate: [
.22 .72 .06 0 0
.22 .72 .06 0 0
.22 .72 .06 0 0
0 0 0 1 0
]
desaturate-and-invert: [
-.22 -.72 -.06 0 1
-.22 -.72 -.06 0 1
-.22 -.72 -.06 0 1
0 0 0 1 0
]
invert-luminosity: [
0 -0.5 -0.5 0 1
-0.5 0 -0.5 0 1
-0.5 -0.5 0 0 1
0 0 0 1 0
]
sepia: [
0.487 0.649 0.159 0.000 0.000
0.295 0.734 0.141 0.000 0.000
0.230 0.450 0.265 0.000 0.000
0.000 0.000 0.000 1.000 0.000
]
]
convolve: #[
sharpen: [
0 -1 0
-1 5 -1
0 -1 0
]
emboss: [
3 .1 .1
.1 .1 .1
.1 .1 -3
]
]
]
]
print svg/encode svg/create assets/size * 3 [
symbol #image assets/image-size [
image _ 0x0 assets/image-size clean-path assets/image
]
linear-gradient #background [
tilt
angle 70
length 200%
add-stop 0 _ 'green
add-stop 1 _ 'red
]
filter #desaturate _ [
color-matrix assets/matrices/color/desaturate
]
filter #sharpen _ [
convolve _ assets/matrices/convolve/sharpen
]
filter #blur _ [
blur 2
]
filter #emboss _ [
convolve _ assets/matrices/convolve/emboss
]
filter #invert-luminosity _ [
color-matrix/srgb assets/matrices/color/invert-luminosity
]
filter #luminance-to-alpha _ [
color-matrix assets/matrices/color/desaturate-and-invert
luminance-to-alpha
]
filter #alpha-luminosity _ [
color-matrix assets/matrices/color/desaturate-and-invert
set @alpha luminance-to-alpha
with source composite @alpha 'in
]
filter #yellow-purple 0x0 [
color-matrix assets/matrices/color/desaturate
set @alpha luminance-to-alpha
flood #fe6
set @yellow composite @alpha 'in
flood #c2f
blend @yellow 'overlay
]
rectangle #[fill: #background] 0x0 canvas-size
use/resize #image 0x0 _ assets/size
use/resize #image assets/size * 1x0 #[filter: #desaturate] assets/size
use/resize #image assets/size * 2x0 #[filter: #sharpen] assets/size
use/resize #image assets/size * 0x1 #[filter: #emboss] assets/size
use/resize #image assets/size * 1x1 #[filter: #invert-luminosity] assets/size
use/resize #image assets/size * 2x1 #[filter: #luminance-to-alpha] assets/size
use/resize #image assets/size * 0x2 #[filter: #alpha-luminosity] assets/size
use/resize #image assets/size * 1x2 #[filter: #yellow-purple] assets/size
use/resize #image assets/size * 2x2 #[filter: #blur] assets/size
]
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Rebol [
Title: "Philly Skyline"
Author: "Christopher Ross-Gill"
]
64#{
/9j/4AAQSkZJRgABAQAAAQABAAD/7QBsUGhvdG9zaG9wIDMuMAA4QklNBAQAAAAA
AFAcAigASkZCTUQwZjAwMDcxMzAyMDAwMGExMDgwMDAwMjUxMjAwMDAzZTE2MDAw
MDg5MWEwMDAwYmUyOTAwMDAxNjM2MDAwMGEwM2EwMDAwAP/bAIQABQYGCwgLCwsL
Cw0LCwsNDg4NDQ4ODw0ODg4NDxAQEBEREBAQEA8TEhMPEBETFBQTERMWFhYTFhUV
FhkWGRYWEgEFBQUKBwoICQkICwgKCAsKCgkJCgoMCQoJCgkMDQsKCwsKCw0MCwsI
CwsMDAwNDQwMDQoLCg0MDQ0MExQTExOc/8IAEQgBQAFAAwEiAAIRAQMRAf/EAPYA
AAEFAQEBAAAAAAAAAAAAAAABAgMEBQYHCBAAAgICAgECBAYCAwEAAAAAAQIAAwQR
BRITISIQFCMxBhUgMDJAM1BBQmBREQABAwICBwMHCQcEAwAAAAABAAIRAxIEIRAT
IjFBUWEFMnEgQlKBkbHBFCMwM2JygqHwBhWSosLR4UBDU7Kz0vESAAEDAQUEBwQH
BgMJAAAAAAEAAhEhAxIxQVEiYXGxEBMygZGhwUJS0fAgI0NigpLhBDBQcrLxM0DC
FFNjcJCio7PSEwACAgEDAwQBBAMBAQAAAAAAAREhMRBBUWFxkSCBobHwMMHR4UBQ
8XCQ/9oADAMBAAIBAwEAAADxAc3sONakiOa1VcOa2RqDSQcjB6joklQIiZBsavBz
B4EY4BiPFaxJGiNVVHMHoK1r1GxqoDRwIxJAImysEupIRujV4oxw4WNJGq1QVREU
Bo5BUVwORHICNe0a1siK1iSAjEkB0SuRWooI5GuFRoqCAIAAA1zRehp61fP0c1t6
OevUVyPjYPRWtVVc1goIgoqiKCoogIoojRQRqqgqNe1Ro5BERwDUcCMSRFIxwMYP
QVqPaG9GxlLRe1GvifGo5jB6ORquUdEkrHRoqKoiKK1o4EaKAgqAIoCCgNRwqojg
Ro4QajgGI9FGpICRsmjRb6ObXlBVUaqiiCgqCiiI5Aa16LGiOVzWD0QRHCjBw5Wj
miIOQGjkBBVBooCCoCDkBBQEZKjXalWWKpcEUmrACgjkFRQUQcgIKA0cEbRwDRw5
zRyCo2RFIyQEjHgkZIKRpK0aweCMHgMVXMc1Hojp23Ur2qZfY5lMsMc2JXDmtHCo
0cA1VeA+z7RVt+EtsR2a0Q8cyNJAGI8UYqqDB4KwcgjRyhGr0RrUeojFklZNG90M
NjVlyX15tAopFNoR1ZWvWMjeyJJS9nxkiPja4cJa9a8j1sjXw2V7d+iw9b06cniB
ImrSYyUCIkVSIlRFjSQVIx4EZIoNVUjkEUBrJWCyK9IlaKAAoIKqiD3OIitk1599
0KzQT6WZ02Lq+edBn942z6fX4PJxbeB07fXOhxvnls7dXNic7oEdiXTazNOvxPq/
ldae2le5v4caSI5sY9AaOEVrJWI7tuQ4XvKV6Mcs1abZj3MTY5Wp0eNI6ro0ta7n
cbzfS8pidDvVreZPUq+0+HfU9Kfz7d6jla17zaSnymhQ9t1uOldWhrVtPSz6N2oj
kqdli9Bka+75p6f5BBNFp4XX7+HmolB6aCS59upaGSKxrJWBw3favluPt96ef6k8
He9By3VY2rX4/ouTJNfU53q9DK4DHnSjpZ8dWw4oe5+Q7rF9jXy3uq2nxHD9twN7
H9HzOatxTdLcjla+vteda0T9JmVbkbr870nAtLFpuTInQ1oO2Ruf1XnvSMfkz5cN
mr0E+a6xXvcP7cnPbnjae08pJFV7bX0Y14zkvUvFbcXQWL/URzeZ5c+Dahu7eT0a
uycPpclskXpXDdgtrhOS3+fs4nSZk2fUmus7rAR/Uc6iPiw7lJEfsZqewQu8izuy
e5vO0vQrg7n9D1/xWMoxes+lV1+bq/1/4WN6/pOz4DC1+C4brvPX6ej0nE39zm9D
ier49y5M8dO/XxNGjelOm3+JkhXtMPHBY1ke5tF12VGPwNnJhXZt4Nth3/majjN3
cm8L0tnk9SlY0+984vDPR+TuWaM/M9r5V7a9rr3lqV3enc/wlhzetk8u4F+323G5
W10GB9HXMTcw7NbzXu/P78Vvv8fYDw1exbch5nXyNtxh5fQWHN4Sj665mv5Xf6Kt
Nhwz0qqHUaPmsgdzmYU4XYhrko3X6KLRg9HyY14/et7DFqbuQZ1rNu59tzdnsPMr
9aXxmFljoqVnvtrbgs5nV8f2EEXO8r23FTJN03H9FpZWJrUcDH2Jct6WoYvT/L/o
2u/lMHs+Si77kc65zmh512fGd311Shg8t6TkE/mNjpOcuzVqm0sb+UOqrKuJrSAt
+3kxxrZ3OScp3un590kLtjG2cJyebfQHjXpcdjpfNdjl71Tqd7gelGGG7OlbLr8/
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
07TtNzfx38N/AT8YYwS3Gs3O0oy2pBD5bspX9W/2dzc38QZubm5ubm5ubm/0gz8Y
Xdhg/p3Nzfw3N/Dfx3N/Hc3Nzf8ARBmfn2ZRQ/1tzf8Aqd/+Q//aAAgBAgEBPwCE
AoUaIUaY0x5ZQKlSh9NChFNqFB2gKfpZ0hihDSCp/wBHKClSh9ESqTSN/wBHKlSp
Uq5SidGubzWtbzQcDxU+RUxNj2MjvcVOmVKlSp0lyLnHon0J3FahydTc1Uy/gmuM
ZqVKx1SyrRPifU3f71h8UytNs7O8EQRKf2zQZV1LnkPm3umLjwn9BSpUqVKlSs9N
yuUoKUcZTBLS7MLWtgGRnuXah+coeFX+lYLGMpX3cfRF/wD1WJwramJvZtFxD9p3
d2vN9SxfaLqTmtY263v9egVOpe1rh5wlV62rY53IfnwQxjtS8ztNjaWHxz5zJKY+
4A81OiUSqNS9s/r+ZSsdi332A2hpBkSD/kdFhsY8ua0mRKxr/m3md3WF3tr4p52a
Srm11P8AH8F57PtIsu/+2/mFjM6k/d9ywWKLvmzwC7RrNNNwBBIOYBlPr20qn4Vh
6k59QqePZSptuPqWH7QFYgBpE806u1u9wHiVfO4yFKw+LbFvJDFtmM/GMvasc+Xk
/rcqLrVjMQ11NzZkuHD++i5VG3qtS2mfr3pifUTMTY7ZVkbtDe8u8m1dXbbx4qrt
XOuKw+JNJfvN261sqnjQzuua5NxzXu76qV23LDvuVTEavl/Cm3vt2m+xO+1wTqrW
qtVv1Oz3P/ZXQm1VrwjiWbrSn1ms70p2Jp+mm4lkXXL5RTtuvFqZVZUu8FUxfms9
VzrVQxe3a/w2Tc1YnAgNvZXbJzs7/wB7JuQWAw7Xu+pbU+0n0abfRp/gWHt/5Lla
rU+m53nWr5OtW1ZJtNOw535KnStVdt2yvk1o4J9B53N/mTW1m3t1PM/eWM1tIfV9
5HC3Nzm7kvkpFMtDtXdvKw3ZNV/1r7Nq7Z733Z3WpmHZSba1OZZd6KwjPOcqmtub
s2p1W0K5y1jk7E28Fd0X4U5rdLh9lNu6J932FUwjn1G1P6k/DuX7tuc1zXu/FU0U
nl1ayNwn2rGjbI/XdWGF8eMexY0RSeeTV9Yz7yttaFWfmy3j/hP7zE1Yqs3Dd7z3
Na3xcqDi+o9no2fzJ7bd6McVcE7Qfup1vFqbksfhqmIpVWU6mrJ84Zu9S7NwOouc
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
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment