Compare commits

..

1 commit

Author SHA1 Message Date
9f367cb9b2 begin working on animation support 2025-03-12 16:38:23 +01:00
31 changed files with 148 additions and 287 deletions

View file

@ -8,7 +8,7 @@ trigger:
- main
steps:
- name: docker-default
- name: docker
image: plugins/docker
settings:
registry: git.riksolo.com
@ -19,29 +19,3 @@ steps:
- ${DRONE_COMMIT}
password:
from_secret: dockertoken
- name: docker-rblicht
image: plugins/docker
settings:
registry: git.riksolo.com
username: riksolo
repo: git.riksolo.com/${DRONE_REPO,,}
build_args:
- SITE=rblicht
tags:
- latest-rblicht
- ${DRONE_COMMIT}-rblicht
password:
from_secret: dockertoken
- name: trigger docker-compose release
image: plugins/downstream
settings:
server: https://drone.riksolo.com
token:
from_secret: drone_token
repositories:
- RikSolo/docker-compose
depends_on:
- docker-default
- docker-rblicht

View file

@ -1,9 +1,6 @@
FROM node:22
WORKDIR /usr/src/app
ARG SITE=default
ENV SITE=$SITE
COPY package*.json ./
RUN npm install
ADD . .

View file

@ -1,8 +0,0 @@
export default function () {
return {
title: "Rik Berkelder",
url: process.env.site == "rblicht" ? "https://rblicht.nl" : "https://riksolo.com",
author: "Rik Berkelder",
site: process.env.SITE || 'default'
};
}

View file

@ -1,5 +1,5 @@
const conf = {
tags: "blogpost",
tags: "blogposts",
layout: "blogpost.njk",
eleventyComputed: {
permalink(data) {

View file

@ -1,11 +0,0 @@
<ul>
<li><a href="https://www.sowulo.nl">Sowulo</a> - Lighting design & international touring since 2023</li>
<li><a href="https://aitum.tv">Aitum</a> - React & Electron development + MIDI and OSC integration</li>
<li><a href="https://twitch.tv/mrgregles">MrGregles</a> - Fully remote, real-time live show lighting control</li>
<li>RN7 - Custom digital signage with radio playout data integration</li>
<li>Doornroosje / TivoliVredenburg / Luxor Live / Musis Sacrum - House LD / System Technician</li>
<li>ShowLine / Hoevenaars / Ecolicht - Lighting Operator / System Technician</li>
<li>DG Producties / Theater Terra / Ellen ten Damme - Theatre Touring</li>
<li>Deyval - Last-minute work for a wide range of customers</li>
<small><a href="/portfolio">See More -></a></small>
</ul>

View file

@ -1,31 +0,0 @@
{% macro navItem(title, url, hyphen=true, target='_self') %}
<span>
<a href="{{url}}" target="{{target}}">{{title}}</a>
{% if hyphen %} - {% endif %}
</span>
{% endmacro %}
<div class="container">
<div class="nav">
<a class="d-inline-block main-logo" href="/">
<img src="/img/RB-w.png" alt="RB logo" eleventy:widths="100" />
Rik Berkelder
</a>
<div class="nav-links">
<div class="d-inline-block">
{{navItem("Home", "/")}}
{%if site.site != "rblicht" %}
{{navItem("Blog", "/blog")}}
{%endif%}
{{navItem("Portfolio", "/portfolio", false)}}
</div>
<div class="d-inline-block">
<span> | </span>
{% if site.site != "rblicht" %}
{{navItem("Mastodon", "https://dook.business/@RikSolo")}}
{% endif %}
{{navItem("Instagram", "https://instagram.com/RikBerkelder", false)}}
</div>
</div>
</div>
</div>

View file

@ -1,21 +0,0 @@
<div class="flex">
<div class="col-half">
<b>Lighting & AV</b>
<ul>
<li>GrandMA2/3, Avolites, Hog4, Obsidian Onyx</li>
<li>Capture, Vectorworks</li>
<li>RDM, dmXLAN, Luminex, Mikrotik</li>
<li>ATEM, Resolume, VMix, OBS</li>
<li>Timecode, Remote Production, System Integration</li>
</ul>
</div>
<div class="col-half">
<b>Software & IT</b>
<ul>
<li>Typescript, Rust, C++</li>
<li>React (Native), Angular, NodeJS, Electron, Embedded</li>
<li>Git, Docker, Gitlab CI, GitHub Actions, DroneCI</li>
<li>Network Management, Cisco, Mikrotik, Netgear</li>
</ul>
</div>
</div>

View file

@ -1,57 +0,0 @@
<!doctype html>
<html>
<head>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inconsolata:wght@400;700&display=swap" rel="stylesheet">
<link rel="stylesheet" type="text/css" href="/style.css" />
<link href="https://unpkg.com/prism-themes@1.9.0/themes/prism-nord.css" rel="stylesheet" />
<link rel="stylesheet" href="https://unpkg.com/simplelightbox@2.14.3/dist/simple-lightbox.min.css" />
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="robots" content="index, follow" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="language" content="English" />
<meta name="google-site-verification" content="x17arJy33V33DYnmMYybZciXngFd8R8xn1UZRdp7qxo" />
<link rel="canonical" href="{{site.url}}{{page.url | url}}" />
{%if tags.includes("blogpost")%}
<meta property="og:type" content="article" />
{%if description %}
<meta property="description" content="{{description}}" />
<meta property="og:description" content="{{description}}" />
{% endif %}
<meta property="og:title" content="{{title}}" />
<meta property="og:url" content="{{site.url}}{{page.url | url}}" />
<meta property="og:sitename" content="{{site.title}}" />
<meta property="og:image" content="{{site.url}}/img/RB-w.png" />
{%endif%}
<title>{% if title %}{{title}} | {% endif %}{{site.title}}</title>
</head>
<body>
{{content | safe}}
<script src="//instant.page/5.2.0" type="module"
integrity="sha384-jnZyxPjiipYXnSU0ygqeac2q7CVYMbh84q0uHVRRxEtvFPiQYbXWUorga2aqZJ0z"></script>
<script data-goatcounter="https://goatcounter.riksolo.com/count" async
src="//goatcounter.riksolo.com/count.js"></script>
<script src="//unpkg.com/simplelightbox@2.14.3/dist/simple-lightbox.min.js"></script>
<script>
new SimpleLightbox('.gallery a', {
widthRatio: 0.9,
heightRatio: 0.95,
captionSelector: '.gallery-caption',
captionType: 'text',
});
</script>
</body>
</html>

View file

@ -1,7 +1,82 @@
---
layout: 'base-nonav.njk'
---
{% macro navItem(title, url, hyphen=true, target='_self') %}
<span>
<a href="{{url}}" target="{{target}}">{{title}}</a>
{% if hyphen %} - {% endif %}
</span>
{% endmacro %}
{%include "navbar.njk"%}
<!doctype html>
<html>
{{content | safe}}
<head>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inconsolata:wght@400;700&display=swap" rel="stylesheet">
<link rel="stylesheet" type="text/css" href="/style.css" />
<link href="https://unpkg.com/prism-themes@1.9.0/themes/prism-nord.css" rel="stylesheet" />
<link rel="stylesheet" href="https://unpkg.com/simplelightbox@2.14.3/dist/simple-lightbox.min.css" />
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="robots" content="index, follow" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="language" content="English" />
<meta name="google-site-verification" content="x17arJy33V33DYnmMYybZciXngFd8R8xn1UZRdp7qxo" />
<link rel="canonical" href="{{site.url}}{{page.url | url}}" />
{%if tags.includes("blogpost")%}
<meta property="og:type" content="article" />
{%if description %}
<meta property="description" content="{{description}}" />
<meta property="og:description" content="{{description}}" />
{% endif %}
<meta property="og:title" content="{{title}}" />
<meta property="og:url" content="{{site.url}}{{page.url | url}}" />
<meta property="og:sitename" content="{{site.title}}" />
<meta property="og:image" content="{{site.url}}/img/RB-w.png" />
{%endif%}
<title>{% if title %}{{title}} | {% endif %}{{site.title}}</title>
</head>
<body>
<div class="container">
<div class="nav">
<a class="d-inline-block main-logo" href="/">
<img src="/img/RB-w.png" alt="RB logo" eleventy:widths="100" />
Rik Berkelder
</a>
<div class="nav-links">
<div class="d-inline-block">
{{navItem("Home", "/")}}
{{navItem("Blog", "/blog")}}
{{navItem("Portfolio", "/portfolio", false)}}
</div>
<div class="d-inline-block">
<span> | </span>
{{navItem("Mastodon", "https://dook.business/@RikSolo")}}
{{navItem("Instagram", "https://instagram.com/RikBerkelder", false)}}
</div>
</div>
</div>
</div>
{{content | safe}}
<script src="//instant.page/5.2.0" type="module"
integrity="sha384-jnZyxPjiipYXnSU0ygqeac2q7CVYMbh84q0uHVRRxEtvFPiQYbXWUorga2aqZJ0z"></script>
<script data-goatcounter="https://goatcounter.riksolo.com/count" async
src="//goatcounter.riksolo.com/count.js"></script>
<script src="//unpkg.com/simplelightbox@2.14.3/dist/simple-lightbox.min.js"></script>
<script>
new SimpleLightbox('.gallery a', {
widthRatio: 0.9,
heightRatio: 0.95,
captionSelector: '.gallery-caption',
captionType: 'text',
});
</script>
</body>
</html>

View file

@ -14,7 +14,7 @@ layout: base.njk
<div class="portfolio-detail-images gallery">
{% for image in data.images %}
<a href="{% imageUrl image.url %}">
<img src="{{image.url}}" alt="" loading="lazy" />
<img src="{{image.url}}" alt="" loading="lazy" width="600" />
{% if image.caption %}
<div class="gallery-caption">
{{image.caption}}

View file

@ -4,7 +4,7 @@ permalink: "/blog/"
---
<h1>Blog</h1>
{% for post in collections.blogpost | reverse %}
{% for post in collections.blogposts | reverse %}
<div>
{{post.data.date | dateLocale}} - <a href="{{ post.data.permalink | safe }}">{{post.data.title}}</a>
</div>

View file

@ -1,43 +0,0 @@
---
title: CV
permalink: "/cv/"
layout: 'base-nonav.njk'
draft: true
---
<div class="container">
<h1>Rik Berkelder</h1>
Lighting Designer/Technician | Software Engineer | Nerd
<h2>About</h2>
<p>
I am a freelance lighting designer, technician, and systems specialist with a focus on touring productions and live
performance. Since 2018, I have worked freelance, initially alongside a career in IT and software engineering and
full time since 2022, bringing together technical precision, creative design, and a strong respect for the craft and
crew.
</p>
<p>
I have designed lighting for touring shows that require both creative adaptability and practical problem solving on
the road. As a house and systems technician in a variety of venues, I regularly support international acts and
crews, adapting to varied
setups and workflows. My theatre and festival touring experience has also strengthened my ability to communicate
clearly with local teams and deliver consistent, high quality results in dynamic environments.
</p>
<p>
A perfectionist by nature, I value preparation, attention to detail, and reliability while staying flexible and
collaborative to meet the demands of live production. My background in IT and network management supports
increasingly complex lighting and control systems, ensuring stable and efficient operation across all types of
venues.
</p>
<h2>Skills</h2>
{%include "skills.njk" %}
<h2>Highlighted work</h2>
{%include "highlights.njk" %}
<h2>Contact</h2>
rik@rblicht.nl / +31 6 37 27 17 91
</div>

View file

@ -6,37 +6,45 @@ permalink: "/"
<h1>Rik Berkelder</h1>
Lighting Designer | Software Engineer | Nerd
{%if site.site == "rblicht" %}
<h2>About</h2>
<p>
I am a freelance stage lighting technician, lighting designer, and lighting systems technician with a passion for the
intersection of technical precision and creative expression. My journey in lighting began in primary school, driven by
a fascination with how light shapes space and mood. Since 2018, Ive been freelancing alongside a career in software
engineering and IT, transitioning to full-time freelance work in 2022.
</p>
<p>
A perfectionist by nature, I value preparation, attention to detail, and reliability while staying flexible and
collaborative to meet the demands of live production. I strive bring professionalism, technical expertise, and a deep
commitment to elevating every production I work on, blending methodical planning with a love for creative
problem-solving and thinking on my feet when necessary.
</p>
{%endif%}
<h2>Skills</h2>
{%include "skills.njk" %}
<div class="flex">
<div class="col-half">
<b>Lighting & AV</b>
<ul>
<li>GrandMA2/3, Avolites, Hog4, Obsidian Onyx</li>
<li>Capture, Vectorworks</li>
<li>ATEM, Resolume, VMix, OBS</li>
<li>Timecode, Remote Production, System Integration</li>
</ul>
</div>
<div class="col-half">
<b>Software</b>
<ul>
<li>Typescript, GraphQL</li>
<li>React (Native), Angular, NodeJS, Electron</li>
<li>Git, Docker, Gitlab CI, GitHub Actions, DroneCI</li>
<li>Sass/SCSS, Tailwind, Bootstrap</li>
</ul>
</div>
</div>
<h2>Highlighted Projects/Clients</h2>
{%include "highlights.njk" %}
<ul>
<li><a href="https://www.sowulo.nl">Sowulo</a> - Lighting design & touring since 2023</li>
<li><a href="https://aitum.tv">Aitum</a> - React & Electron development</li>
<li><a href="https://twitch.tv/mrgregles">MrGregles</a> - Fully remote, real-time live show lighting control</li>
<li><a href="https://rn7.nl">RN7</a> - Custom digital signage with radio playout data integration</li>
<li>Doornroosje / TivoliVredenburg / Luxor Live - House LD</li>
<small><a href="/portfolio">See More -></a></small>
</ul>
<h2>Contact</h2>
{% if site.site != "rblicht" %}mail@riksolo.com / {% endif %}rik@rblicht.nl
mail@riksolo.com / rik@rblicht.nl
<h3>Find me elsewhere</h3>
<ul>
{% if site.site != "rblicht" %}
<li><a href="https://dook.business/@RikSolo">Mastodon</a> <small>(dook.business)</small></li>
{%endif%}
<li><a href="https://instagram.com/RikBerkelder">Instagram</a></li>
<li><a href="https://github.com/rikberkelder">GitHub</a></li>
<li><a href="https://git.riksolo.com">Gitea</a></li>

Binary file not shown.

View file

@ -1,6 +0,0 @@
---
order: 4
title: DG Theater
description: "National theatre tours with Cirque en Afrique: Kalabante (2024) and African Mama's: The Great Five (2025). Bringing the show's designs to life in varying conditions, and making sure all of the technical lighting aspects of the show are maintained properly and function perfectly every performance."
timeframe: 2024 - now
---

Binary file not shown.

Binary file not shown.

BIN
content/portfolio/doornroosje/1.jpg (Stored with Git LFS)

Binary file not shown.

BIN
content/portfolio/doornroosje/2.jpg (Stored with Git LFS)

Binary file not shown.

BIN
content/portfolio/doornroosje/3.jpg (Stored with Git LFS)

Binary file not shown.

BIN
content/portfolio/doornroosje/4.jpg (Stored with Git LFS)

Binary file not shown.

View file

@ -1,6 +0,0 @@
---
order: 5
title: Doornroosje
description: Making sure visiting technicians have a smooth experience at the iconic Nijmegen venue, and providing fitting lighting on the fly for any act not travelling with their own lighting designer and a variety of dance events.
timeframe: 2024 - now
---

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 MiB

View file

@ -1,7 +1,7 @@
---
order: 2
title: Luxor Live
description: Delivering dynamic, on-the-spot lighting for visiting acts without their own lighting designer, and ensuring the house system is in perfect shape for visiting technicians.
description: Delivering dynamic, on-the-spot lighting for visiting acts without their own lighting designer, and ensuring a smooth experience with the house rig for visiting technicians.
timeframe: 2022 - now
---

View file

@ -17,7 +17,8 @@ const conf = {
const images = await Promise.all(files.map(async (image) => {
const imagePath = path.resolve(dir + '/' + image);
const exif = await exifr.parse(imagePath, { pick: ['XPComment', 'DateTimeOriginal'] });
//const exif = await exifr.parse(imagePath, { pick: ['XPComment', 'DateTimeOriginal'] });
const exif = {};
return {
url: data.page.url + image,

View file

@ -1,22 +1,19 @@
---
order: 1
title: Sowulo
description: Designing a theatrical, atmospheric and detailed show while and bringing it to a variety venues and festivals of varying sizes with very short on-site preparation times. Highlights include Hellfest, Motocultor, Castlefest and a 2025 EU Headline Tour
description: Designing a theatrical, atmospheric and detailed show while and bringing it to a variety venues and festivals of varying sizes with very short on-site preparation times.
timeframe: 2023 - now
---
## Notable shows
- Echos & Merveilles (mainstage) 2025
- Doornroosje, Nijmegen
- 5-show nightliner tour 2025
- P60, Amstelveen
- Motocultor 2024
- Sint Stevenskerk Nijmegen
- Opera Leśna (support Heilung)
- Wave Gothik Treffen 2024
- Echos & Merveilles 2024
- Trolls & Legends 2024
- TivoliVredenburg (Pandora)
- Menuo Juodoragis (mainstage) 2023
- Midgardsblot (mainstage) 2023
- Castlefest (mainstage) 2023
- Midgardsblot (mainstage) 2023
- Menuo Juodoragis (mainstage) 2023
- TivoliVredenburg (Pandora)
- Trolls & Legends 2024
- Echos & Merveilles 2024
- Wave Gothik Treffen 2024
- Opera Leśna (support Heilung)
- Sint Stevenskerk Nijmegen
- Motocultor 2024
- P60 amstelveen

View file

@ -1,6 +1,6 @@
---
order: 3
title: TivoliVredenburg
description: Creative and fitting lighting for a wide variety of productions. From sales to classical to jazz to metal, across 5 stages in the venue. As well as making sure the house systems function and adapt perfectly to visiting tours and complex international productions, including regular maintenance and show-specific adaptations.
description: Creative and fitting lighting for a wide variety of productions. From sales to classical to jazz to metal, across 5 stages in the venue.
timeframe: 2023 - now
---

View file

@ -87,9 +87,11 @@ body {
flex-wrap: wrap !important;
}
picture {
picture,
img {
display: block;
height: 15rem;
height: 15rem !important;
max-width: 33.33%;
flex-grow: 1;
img {

View file

@ -31,7 +31,13 @@ export default async function (eleventyConfig) {
//Images
eleventyConfig.addPlugin(eleventyImageTransformPlugin, {
widths: ["700"]
widths: ["700"],
formats: ["jpeg", "webp", "gif"],
useCache: true,
sharpOptions: {
animated: true,
limitInputPixels: false
}
});
eleventyConfig.addShortcode("figure", (url, alt, caption, width) => {
return `
@ -45,10 +51,15 @@ export default async function (eleventyConfig) {
eleventyConfig.addShortcode("imageUrl", async (image, width) => {
const img = await Image(`./content${image}`, {
outputDir: 'dist/img/',
useCache: true
useCache: true,
sharpOptions: {
animated: true,
limitInputPixels: false
}
});
return img.jpeg[0].url;
const files = img.jpeg ?? img.webp;
return files[0].url;
});
//Markdown