generated from gbrochar/boilerplate
cerberus presentation
This commit is contained in:
parent
18d780aed8
commit
b817ff4fe5
|
@ -1,3 +1,7 @@
|
||||||
|
# files
|
||||||
|
public/images
|
||||||
|
public/videos
|
||||||
|
|
||||||
# ---> Node
|
# ---> Node
|
||||||
# Logs
|
# Logs
|
||||||
logs
|
logs
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,48 @@
|
||||||
|
html {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
margin: auto;
|
||||||
|
padding: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
background-color: #1d2021;
|
||||||
|
color: #ebdbb2;
|
||||||
|
}
|
||||||
|
|
||||||
|
#imagewithdescription {
|
||||||
|
width: 200px;
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
#smallimage {
|
||||||
|
height: 200px;
|
||||||
|
width: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
#banner {
|
||||||
|
max-width: 80%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#navbar {
|
||||||
|
max-width: calc(782px - 32px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.loader {
|
||||||
|
border: 16px solid #f3f3f3;
|
||||||
|
border-top: 16px solid #3498db;
|
||||||
|
border-radius: 50%;
|
||||||
|
margin: auto;
|
||||||
|
width: 120px;
|
||||||
|
height: 120px;
|
||||||
|
animation: spin 1s linear infinite;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes spin{
|
||||||
|
0% {transform: rotate(0deg);}
|
||||||
|
100% {transform: rotate(360deg);}
|
||||||
|
}
|
|
@ -0,0 +1,25 @@
|
||||||
|
import React from 'react';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return {jsx} The root component
|
||||||
|
*/
|
||||||
|
export default function Arduino() {
|
||||||
|
return (
|
||||||
|
<div className='container'>
|
||||||
|
<h1>Cerberus played with an Arduino controller</h1>
|
||||||
|
<p>A recording of a work session experimenting with Arduino and a
|
||||||
|
MOSFET transistor to control the laser state, by
|
||||||
|
synchronizing the frequency of the waveform and the frequency
|
||||||
|
of the MOSFET we can create segmentation, you can see 8
|
||||||
|
segments at 1:24 and later 256 segments. The laser sometimes
|
||||||
|
vanishes because I recompile the arduino project during the
|
||||||
|
video</p>
|
||||||
|
<video width="360" height="640" controls>
|
||||||
|
<source
|
||||||
|
src="static/videos/laser_arduino.mp4"
|
||||||
|
type="video/mp4" />
|
||||||
|
Your browser does not support the video tag.
|
||||||
|
</video>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
|
@ -0,0 +1,22 @@
|
||||||
|
import React from 'react';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return {jsx} The root component
|
||||||
|
*/
|
||||||
|
export default function Beebox() {
|
||||||
|
return (
|
||||||
|
<div className='container'>
|
||||||
|
<h1>Cerberus with appropriate music</h1>
|
||||||
|
<p>This is a work session. The Cerberus is a very versatile project
|
||||||
|
and you cannot always predict the shape that the sound will
|
||||||
|
produce, here I used simple waveforms to create more or less
|
||||||
|
predictable shapes, you can recognize Lissajous curves at some
|
||||||
|
points</p>
|
||||||
|
<video width="360" height="640" controls>
|
||||||
|
<source src="static/videos/laser_beepbox.mp4"
|
||||||
|
type="video/mp4" />
|
||||||
|
Your browser does not support the video tag.
|
||||||
|
</video>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
|
@ -0,0 +1,25 @@
|
||||||
|
import React from 'react';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return {jsx} The root component
|
||||||
|
*/
|
||||||
|
export default function Instruments() {
|
||||||
|
return (
|
||||||
|
<div className='container'>
|
||||||
|
<h1>Cerberus played with string instruments</h1>
|
||||||
|
<p>A recording of an event made by Évariste that took place the 9th
|
||||||
|
of November 2018 at Matrice, it features the Cerberus being
|
||||||
|
played by string instruments.</p>
|
||||||
|
<video width="640" height="360" controls>
|
||||||
|
<source src="static/videos/laser_instruments.mp4"
|
||||||
|
type="video/mp4" />
|
||||||
|
Your browser does not support the video tag.
|
||||||
|
</video>
|
||||||
|
<p>Photography took after the event</p>
|
||||||
|
<img
|
||||||
|
width="640"
|
||||||
|
height="auto"
|
||||||
|
src='static/images/laser_instruments.jpg'></img>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
|
@ -0,0 +1,23 @@
|
||||||
|
import React from 'react';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return {jsx} The root component
|
||||||
|
*/
|
||||||
|
export default function Kinect() {
|
||||||
|
return (
|
||||||
|
<div className='container'>
|
||||||
|
<h1>Cerberus played with a Kinect camera</h1>
|
||||||
|
<p>A recording of a work session experimenting with Kinect depth
|
||||||
|
camera and the Cerberus</p>
|
||||||
|
<p>
|
||||||
|
<a
|
||||||
|
href={'https://git.gaetanbrochard.dev/' +
|
||||||
|
'gbrochar/cerberus-kinect'}>
|
||||||
|
The code for this project</a></p>
|
||||||
|
<video width="640" height="360" controls>
|
||||||
|
<source src="static/videos/laser_kinect.mp4" type="video/mp4" />
|
||||||
|
Your browser does not support the video tag.
|
||||||
|
</video>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
|
@ -0,0 +1,27 @@
|
||||||
|
import React from 'react';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return {jsx} The root component
|
||||||
|
*/
|
||||||
|
export default function Presentation() {
|
||||||
|
return (
|
||||||
|
<div className='container'>
|
||||||
|
<div className='display-1'>Cerberus</div>
|
||||||
|
<p>The Cerberus is a sound visualization artistic project that
|
||||||
|
allows for a lot of way to visualize sounds, we experimented
|
||||||
|
with this project for several monthes in 2018 while Évariste
|
||||||
|
was still in activity, and I later made a Kinect version of the
|
||||||
|
project for the digital art exhibition I made in Arzal,
|
||||||
|
Britanny.</p>
|
||||||
|
<p>Videos aren't giving the Cerberus good publicity, because
|
||||||
|
the laser is actually drawing the shape dozens or even hundreds
|
||||||
|
of time per second, and the camera shutter speed struggle to
|
||||||
|
capture that. Pictures however can be pretty, as you can see
|
||||||
|
below.</p>
|
||||||
|
<img
|
||||||
|
width="640"
|
||||||
|
height="auto"
|
||||||
|
src='static/images/laser_photo.jpg'></img>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
|
@ -1,4 +1,9 @@
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
|
import Presentation from './Presentation';
|
||||||
|
import Instruments from './Instruments';
|
||||||
|
import Kinect from './Kinect';
|
||||||
|
import Beepbox from './Beepbox';
|
||||||
|
import Arduino from './Arduino';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return {jsx} The root component
|
* @return {jsx} The root component
|
||||||
|
@ -6,7 +11,11 @@ import React from 'react';
|
||||||
export default function Root() {
|
export default function Root() {
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
<h1>Hello World !</h1>
|
<Presentation />
|
||||||
|
<Instruments />
|
||||||
|
<Kinect />
|
||||||
|
<Beepbox />
|
||||||
|
<Arduino />
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,4 +12,4 @@ app.get('/', (_req, res) => {
|
||||||
res.render('index');
|
res.render('index');
|
||||||
});
|
});
|
||||||
|
|
||||||
app.listen(3000);
|
app.listen(3004);
|
||||||
|
|
|
@ -1,11 +1,28 @@
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html>
|
<html>
|
||||||
<head>
|
|
||||||
<meta charset="utf-8">
|
<head>
|
||||||
<title></title>
|
<meta charset="utf-8">
|
||||||
</head>
|
<title></title>
|
||||||
<body>
|
|
||||||
<div id="root"></div>
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css"
|
||||||
<script src="js/bundle.js"></script>
|
integrity="sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2" crossorigin="anonymous">
|
||||||
</body>
|
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js"
|
||||||
|
integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN"
|
||||||
|
crossorigin="anonymous"></script>
|
||||||
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js"
|
||||||
|
integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q"
|
||||||
|
crossorigin="anonymous"></script>
|
||||||
|
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"
|
||||||
|
integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl"
|
||||||
|
crossorigin="anonymous"></script>
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/static/css/style.css">
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div id="root"></div>
|
||||||
|
<script src="js/bundle.js"></script>
|
||||||
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
Loading…
Reference in New Issue