Slide
by Voltaire (*1694; †1778)
The Cartesian took the floor and said: "The soul is a pure spirit that has received in the belly of its mother all metaphysical ideas, and which, leaving that place, is obliged to go to school, and to learn all over again what it already knew, and will not know again."
"It is not worth the trouble," responded the animal with the height of eight leagues, "for your soul to be so knowledgeable in its mother's stomach, only to be so ignorant when you have hair on your chin. But what do you understand by the mind?"
"You are asking me?" said the reasoner. "I have no idea. We say that it is not matter."
"But do you at least know what matter is?"
"Certainly," replied the man. "For example this stone is grey, has such and such a form, has three dimensions, is heavy and divisible."
"Well!" said the Sirian, "this thing that appears to you to be divisible, heavy, and grey, will you tell me what it is? You see some attributes, but behind those, are you familiar with that?
"No," said the other.
"So you do not know what matter is."
"Le Micromégas," written by the French philosopher and satirist Voltaire* in 1752, stands as an early example of science fiction within the literary world (alongside his work "Plato's Dream"). The novella portrays the arrival on Earth of an extraterrestrial being from a planet orbiting Sirius, accompanied by another being from Saturn. Voltaire employs the technique of an outsider's perspective to critique various aspects of Western culture, a method prevalent during the repressive period in which it was written. *Voltaire was just one of his more than 170 pseudonyms, while his real name was François-Marie Arouet.
"If there’s life on other planets, then the earth is the Universe’s insane asylum."- Voltaire
"If you want to know who controls you, look at who you are not allowed to criticize." - Voltaire
"Anyone who has the power to make you believe absurdities has the power to make you commit injustices." - Voltaire
"The right to free speech is more important than the content of the speech." - Voltaire
"It is difficult to free fools from the chains they revere." - Voltaire
"It is dangerous to be right in matters where established men are wrong." - Voltaire
"Many are destined to reason wrongly; others, not to reason at all; and others, to persecute those who do reason." - Voltaire
"Doctors put drugs of which they know little into bodies of which they know less for diseases of which they know nothing at all." - Voltaire
"The only way to comprehend what mathematicians mean by Infinity is to contemplate the extent of human stupidity." - Voltaire
"No problem can withstand the assault of sustained thinking." - Voltaire
"The art of government is to make two-thirds of a nation pay all it possibly can pay for the benefit of the other third." - Voltaire
"Is politics nothing other than the art of deliberately lying?" - Voltaire
micromegas
//JavaScript for 3-D audio visualiser (based on Three.js => https://github.com/mrdoob/three.js/)
<canvas id="spectrogram"></canvas>
//<button class="play-button">Play</button>
<script type="module">
import * as THREE from 'https://christopher-germann.de/three.module.js';
document.addEventListener('DOMContentLoaded', () => {
let audioContext; // Declare audio context variable
// Function to initialise audio context
function initializeAudioContext() {
audioContext = new (window.AudioContext || window.webkitAudioContext)();
const analyser = audioContext.createAnalyser();
const audioElement = document.querySelector('audio');
const source = audioContext.createMediaElementSource(audioElement);
source.connect(analyser);
analyser.connect(audioContext.destination);
analyser.fftSize = 256;
const bufferLength = analyser.frequencyBinCount;
const dataArray = new Uint8Array(bufferLength);
// Setup three.js scene
const scene = new THREE.Scene();
const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
const renderer = new THREE.WebGLRenderer({ canvas: document.getElementById('spectrogram') });
renderer.setSize(window.innerWidth, window.innerHeight);
renderer.setClearColor(0x000000, 0); // Set background color to fully transparent
// Create complex geometry
const geometry = new THREE.IcosahedronGeometry(50, 64); // Increase the segments for a smoother sphere
const material = new THREE.MeshStandardMaterial({ color: 0xff00ff, metalness: 0.7, roughness: 0.1 });
const mesh = new THREE.Mesh(geometry, material);
scene.add(mesh);
// Create different 3D shape for particles
const particles = new THREE.Group();
scene.add(particles);
const particleMaterial = new THREE.MeshStandardMaterial({
color: 0xffffff,
map: material.map, // Use the same texture as the main sphere
metalness: 0.7,
roughness: 0.1,
});
for (let i = 0; i < 1000; i++) {
const particle = new THREE.Mesh(new THREE.SphereGeometry(1, 8, 8), particleMaterial);
particle.position.set(
(Math.random() - 0.5) * 200,
(Math.random() - 0.5) * 200,
(Math.random() - 0.5) * 200
);
particles.add(particle);
}
// Create directional light
const directionalLight = new THREE.DirectionalLight(0xffffff, 0.5);
directionalLight.position.set(0, 1, 0);
scene.add(directionalLight);
// Create ambient light
const ambientLight = new THREE.AmbientLight(0x404040, 2);
scene.add(ambientLight);
camera.position.z = 150;
function animate() {
requestAnimationFrame(animate);
analyser.getByteFrequencyData(dataArray);
// Update mesh size based on frequency data
const scale = 1 + dataArray.reduce((sum, value) => sum + value, 0) / (bufferLength * 255);
mesh.scale.set(scale, scale, scale);
// Update particle positions and color based on frequency data
for (let i = 0; i < 1000; i++) {
const particle = particles.children[i];
const frequencyIndex = Math.floor((i / 1000) * bufferLength);
const displacement = (dataArray[frequencyIndex] / 255) * 20;
particle.position.x += displacement;
if (particle.position.x > 100) particle.position.x = -100;
const colorIntensity = dataArray[frequencyIndex] / 255;
particle.material.color.setRGB(colorIntensity, 1 - colorIntensity, 0);
}
// Rotate mesh and particles
mesh.rotation.x += 0.005;
mesh.rotation.y += 0.01;
particles.rotation.x += 0.002;
particles.rotation.y += 0.003;
renderer.render(scene, camera);
}
animate();
source.connect(audioContext.destination);
}
// Event listener for the play button
document.querySelector('.play-button').addEventListener('click', () => {
// Check if the audio context is already initialised
if (!audioContext) {
initializeAudioContext(); // Initialise audio context (conditional)
}
// document.querySelector('audio').play();
});
});
</script>