Compare commits
1 commit
main
...
animations
Author | SHA1 | Date | |
---|---|---|---|
9f367cb9b2 |
32 changed files with 148 additions and 323 deletions
28
.drone.yml
28
.drone.yml
|
@ -8,7 +8,7 @@ trigger:
|
||||||
- main
|
- main
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: docker-default
|
- name: docker
|
||||||
image: plugins/docker
|
image: plugins/docker
|
||||||
settings:
|
settings:
|
||||||
registry: git.riksolo.com
|
registry: git.riksolo.com
|
||||||
|
@ -19,29 +19,3 @@ steps:
|
||||||
- ${DRONE_COMMIT}
|
- ${DRONE_COMMIT}
|
||||||
password:
|
password:
|
||||||
from_secret: dockertoken
|
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
|
|
|
@ -1,9 +1,6 @@
|
||||||
FROM node:22
|
FROM node:22
|
||||||
WORKDIR /usr/src/app
|
WORKDIR /usr/src/app
|
||||||
|
|
||||||
ARG SITE=default
|
|
||||||
ENV SITE=$SITE
|
|
||||||
|
|
||||||
COPY package*.json ./
|
COPY package*.json ./
|
||||||
RUN npm install
|
RUN npm install
|
||||||
ADD . .
|
ADD . .
|
||||||
|
|
|
@ -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'
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,36 +0,0 @@
|
||||||
---
|
|
||||||
slug: ma3-tip-conditional-recipes
|
|
||||||
title: "MA3 Tip: Customizing Shows On The Fly Using Conditional Recipes"
|
|
||||||
date: 2025-09-11
|
|
||||||
modified: 2025-09-11
|
|
||||||
description: Easily adapting GrandMA3 showfiles to different situations by bulk-toggling Recipe lines based on tags.
|
|
||||||
---
|
|
||||||
Touring with a super detailed, highly programmed light show is great, until you find yourself having to adapt to more limited venues than anticipated.
|
|
||||||
|
|
||||||
I found myself facing this problem earlier this year. A band I've been working with had mostly been doing big one-off festival shows, and not a huge amount per year. With those circumstances, it wasn't a big problem for me to manually go over the showfile for every show and fixing things that didn't really work with each festival rig.
|
|
||||||
|
|
||||||
Until they booked a two week club tour through Europe, and while it was a big step for the band, the variety of venues ranged from tiny 100-capacity music places to the mainstage of a festival with 40,000 sold tickets.
|
|
||||||
|
|
||||||
Spending a couple of hours per show doing previz would be possible, but I kept making more or less the same substitutions, which left me wondering if I could lighten that workload.
|
|
||||||
|
|
||||||
## The easy option, and the engineering perspective
|
|
||||||
The first thought was to just build a second "minimal" showfile, for very small rigs. This would be a lot easier to scale up, but it would mean having two base files to keep up to date and program new tracks into. I absolutely hate doing repetitive work though, so keeping two separate showfiles up to date sounds like a pain.
|
|
||||||
|
|
||||||
DRY (don't repeat yourself) is one of the first things hammered into you when you're learning computer programming. If you notice you're writing the same code multiple times, it means you can probably simplify something, or extract it into a reusable bit of code, so that when you change some part of it, it updates anywhere. A great example of DRY in lighting programming would be using presets in your show, instead of hardcoding values into every cue. So I started thinking if I could come up with a more elegant solution for my situation.
|
|
||||||
|
|
||||||
## The elegant solution
|
|
||||||
The entire show has been programmed using recipes, and when I was thinking this problem through, tags were recently added into the MA3 software. I noticed that a Tag field was also added to the recipe lines I started wondering if I could bulk edit recipe lines that have a tag. And as basically any question about doing things in MA using commands, the answer was "of course!"
|
|
||||||
|
|
||||||
I ended up with the following syntax:
|
|
||||||
`
|
|
||||||
Set Sequence 1 Thru Cue 1 Thru Part Thru.Thru Property "enabled" 0 if #[Tag 'No Sides']
|
|
||||||
`
|
|
||||||
|
|
||||||
This disables any recipe line in any cue in any sequence as long as it has a certain tag. change the 0 for a 1 and it enables it. So I created a few tags ("No Sides", "No Floor Spots", "No Floor Washes", and so on), then went through the show, adding additional programming for these situations. Then I just had to create a couple of simple macros to toggle the recipe lines on and off, and I was left with an on-the-fly configurable showfile to adapt to wildly differing show scenarios.
|
|
||||||
|
|
||||||
## Takeaways and other uses
|
|
||||||
Being able to mix and match multiple options also lets me make sure to still maximize what I'm doing with the parts of a rig that are there. Had I chosen to go with a "minimal" showfile, using it when I don't have washes on the floor would also mean losing any cool stuff I was doing with the side lights, or having to manually program it back.
|
|
||||||
|
|
||||||
This technique has saved me several hours per gig, most of which wouldn't have been paid either.
|
|
||||||
|
|
||||||
This trick can be very useful when you're not touring too. I've also started using the `If Tag` technique in my busking showfile. For example for enabling/disabling certain groups in my LOS-inspired system.
|
|
|
@ -1,5 +1,5 @@
|
||||||
const conf = {
|
const conf = {
|
||||||
tags: "blogpost",
|
tags: "blogposts",
|
||||||
layout: "blogpost.njk",
|
layout: "blogpost.njk",
|
||||||
eleventyComputed: {
|
eleventyComputed: {
|
||||||
permalink(data) {
|
permalink(data) {
|
||||||
|
|
|
@ -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>
|
|
|
@ -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>
|
|
|
@ -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>
|
|
|
@ -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>
|
|
|
@ -1,7 +1,82 @@
|
||||||
---
|
{% macro navItem(title, url, hyphen=true, target='_self') %}
|
||||||
layout: 'base-nonav.njk'
|
<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>
|
|
@ -14,7 +14,7 @@ layout: base.njk
|
||||||
<div class="portfolio-detail-images gallery">
|
<div class="portfolio-detail-images gallery">
|
||||||
{% for image in data.images %}
|
{% for image in data.images %}
|
||||||
<a href="{% imageUrl image.url %}">
|
<a href="{% imageUrl image.url %}">
|
||||||
<img src="{{image.url}}" alt="" loading="lazy" />
|
<img src="{{image.url}}" alt="" loading="lazy" width="600" />
|
||||||
{% if image.caption %}
|
{% if image.caption %}
|
||||||
<div class="gallery-caption">
|
<div class="gallery-caption">
|
||||||
{{image.caption}}
|
{{image.caption}}
|
||||||
|
|
|
@ -4,7 +4,7 @@ permalink: "/blog/"
|
||||||
---
|
---
|
||||||
|
|
||||||
<h1>Blog</h1>
|
<h1>Blog</h1>
|
||||||
{% for post in collections.blogpost | reverse %}
|
{% for post in collections.blogposts | reverse %}
|
||||||
<div>
|
<div>
|
||||||
{{post.data.date | dateLocale}} - <a href="{{ post.data.permalink | safe }}">{{post.data.title}}</a>
|
{{post.data.date | dateLocale}} - <a href="{{ post.data.permalink | safe }}">{{post.data.title}}</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -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>
|
|
|
@ -6,37 +6,45 @@ permalink: "/"
|
||||||
<h1>Rik Berkelder</h1>
|
<h1>Rik Berkelder</h1>
|
||||||
Lighting Designer | Software Engineer | Nerd
|
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, I’ve 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>
|
<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>
|
<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>
|
<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>
|
<h3>Find me elsewhere</h3>
|
||||||
<ul>
|
<ul>
|
||||||
{% if site.site != "rblicht" %}
|
|
||||||
<li><a href="https://dook.business/@RikSolo">Mastodon</a> <small>(dook.business)</small></li>
|
<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://instagram.com/RikBerkelder">Instagram</a></li>
|
||||||
<li><a href="https://github.com/rikberkelder">GitHub</a></li>
|
<li><a href="https://github.com/rikberkelder">GitHub</a></li>
|
||||||
<li><a href="https://git.riksolo.com">Gitea</a></li>
|
<li><a href="https://git.riksolo.com">Gitea</a></li>
|
||||||
|
|
BIN
content/portfolio/dgtheater/Kalabante-5-fotograaf-nvt.jpg
(Stored with Git LFS)
BIN
content/portfolio/dgtheater/Kalabante-5-fotograaf-nvt.jpg
(Stored with Git LFS)
Binary file not shown.
|
@ -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
|
|
||||||
---
|
|
BIN
content/portfolio/dgtheater/img57646_orig.png
(Stored with Git LFS)
BIN
content/portfolio/dgtheater/img57646_orig.png
(Stored with Git LFS)
Binary file not shown.
BIN
content/portfolio/dgtheater/img57647_orig.png
(Stored with Git LFS)
BIN
content/portfolio/dgtheater/img57647_orig.png
(Stored with Git LFS)
Binary file not shown.
BIN
content/portfolio/doornroosje/1.jpg
(Stored with Git LFS)
BIN
content/portfolio/doornroosje/1.jpg
(Stored with Git LFS)
Binary file not shown.
BIN
content/portfolio/doornroosje/2.jpg
(Stored with Git LFS)
BIN
content/portfolio/doornroosje/2.jpg
(Stored with Git LFS)
Binary file not shown.
BIN
content/portfolio/doornroosje/3.jpg
(Stored with Git LFS)
BIN
content/portfolio/doornroosje/3.jpg
(Stored with Git LFS)
Binary file not shown.
BIN
content/portfolio/doornroosje/4.jpg
(Stored with Git LFS)
BIN
content/portfolio/doornroosje/4.jpg
(Stored with Git LFS)
Binary file not shown.
|
@ -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
|
|
||||||
---
|
|
BIN
content/portfolio/luxorlive/21.webp
Normal file
BIN
content/portfolio/luxorlive/21.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 8.9 MiB |
BIN
content/portfolio/luxorlive/ll-flow-2_00000060.webp
Normal file
BIN
content/portfolio/luxorlive/ll-flow-2_00000060.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.9 MiB |
BIN
content/portfolio/luxorlive/ll-flow-2_00000080.webp
Normal file
BIN
content/portfolio/luxorlive/ll-flow-2_00000080.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.5 MiB |
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
order: 2
|
order: 2
|
||||||
title: Luxor Live
|
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
|
timeframe: 2022 - now
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,8 @@ const conf = {
|
||||||
const images = await Promise.all(files.map(async (image) => {
|
const images = await Promise.all(files.map(async (image) => {
|
||||||
|
|
||||||
const imagePath = path.resolve(dir + '/' + 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 {
|
return {
|
||||||
url: data.page.url + image,
|
url: data.page.url + image,
|
||||||
|
|
|
@ -1,22 +1,19 @@
|
||||||
---
|
---
|
||||||
order: 1
|
order: 1
|
||||||
title: Sowulo
|
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
|
timeframe: 2023 - now
|
||||||
---
|
---
|
||||||
|
|
||||||
## Notable shows
|
## 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
|
- 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
|
|
@ -1,6 +1,6 @@
|
||||||
---
|
---
|
||||||
order: 3
|
order: 3
|
||||||
title: TivoliVredenburg
|
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
|
timeframe: 2023 - now
|
||||||
---
|
---
|
|
@ -87,9 +87,11 @@ body {
|
||||||
flex-wrap: wrap !important;
|
flex-wrap: wrap !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
picture {
|
picture,
|
||||||
|
img {
|
||||||
display: block;
|
display: block;
|
||||||
height: 15rem;
|
height: 15rem !important;
|
||||||
|
max-width: 33.33%;
|
||||||
flex-grow: 1;
|
flex-grow: 1;
|
||||||
|
|
||||||
img {
|
img {
|
||||||
|
|
|
@ -31,7 +31,13 @@ export default async function (eleventyConfig) {
|
||||||
|
|
||||||
//Images
|
//Images
|
||||||
eleventyConfig.addPlugin(eleventyImageTransformPlugin, {
|
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) => {
|
eleventyConfig.addShortcode("figure", (url, alt, caption, width) => {
|
||||||
return `
|
return `
|
||||||
|
@ -45,10 +51,15 @@ export default async function (eleventyConfig) {
|
||||||
eleventyConfig.addShortcode("imageUrl", async (image, width) => {
|
eleventyConfig.addShortcode("imageUrl", async (image, width) => {
|
||||||
const img = await Image(`./content${image}`, {
|
const img = await Image(`./content${image}`, {
|
||||||
outputDir: 'dist/img/',
|
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
|
//Markdown
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue