≡ Menu

Lissajous figures…

Lissajous figures, geometric representations named after French physicist Jules Antoine Lissajous, arise from two perpendicular oscillations, typically in the form of sinusoidal waves. These oscillations are characterized by specific frequencies and phase differences, parameters that can be adjusted to shape the resulting figure. Specifically, Lissajous curves are primarily determined by three parameters: the frequency ratio of the two sinusoidal waves (a, b) and the phase difference (δ) between them. These parameters are embedded within the following parametric equations, which define the Lissajous curve:

x = sin(at + δ)
y = sin(bt)

By varying these parameters, the form of the Lissajous figure can be manipulated to exhibit an array of shapes, ranging from lines to ellipses, circles, and even more intricate forms. The exact shape hinges on the precise relationship between the frequency ratio and the phase difference.

import numpy as np
import matplotlib.pyplot as plt

# Definition of time range
t = np.linspace(0, 2*np.pi, 1000)

# Definition of frequencies and phase differences
frequencies = [1, 2, 3, 4]
phase_differences = [0, np.pi/4, np.pi/2, 3*np.pi/4]

Lissajous curves have extensive practical implications in fields beyond pure mathematics. In the realm of physics and engineering, they are essential tools for analyzing oscillatory movements, especially when it comes to determining the phase and frequency of a wave in comparison to another. Moreover, Lissajous figures are instrumental in oscilloscopes for the visualization and measurement of electrical waves. Their application is not limited to the scientific domain, however, as they also make significant contributions to the arts and design field. They enable the creation of intriguing patterns and symmetries and have been employed in computer graphics, animation, and even light art to generate complex and dynamic forms.

To generate Lissajous curves in Python, the numpy and matplotlib libraries are particularly suited. By first defining a time range from 0 to 2π and setting specific frequencies and phase differences, a series of Lissajous curves can be created and explored.

# Creation of a grid of plots
fig, axs = plt.subplots(len(frequencies), len(phase_differences), figsize=(10, 10))

for i, freq in enumerate(frequencies):
    for j, phase in enumerate(phase_differences):
        # Generation of Lissajous curves
        x = np.sin(freq * t + phase)
        y = np.sin(t)

        # Plotting of the curves
        axs[i, j].plot(x, y)

        # Setting of the title
        axs[i, j].set_title(f'Frequency: {freq}, Phase: {phase/np.pi}π')

# Adjustment of the space between the plots
plt.tight_layout()
plt.show()

In this Python code, the x and y values of each Lissajous figure are computed for every combination of frequency and phase difference, using the parametric equations of the Lissajous curves. Each curve is then plotted, and the title of each subplot is set to indicate the corresponding frequency and phase difference.

{ 0 comments }

Domenico Starnone, artigiano della parola, plasma il paesaggio della letteratura italiana odierna come acqua paziente che scolpisce la roccia. Esprime profonde verità con poca prosa, creando universi interi in poche pagine, al pari di artisti come Piperno, Benni e Wu Ming.
Il suo libro “Confidenza” (Einaudi) è un esempio vibrante del suo mestiere. L’opera è un’eco risonante di “Lacci” (Einaudi), un altro capolavoro della sua mano. Entrambi provocano pensieri sulla scelta esistenziale e sulla percezione del vero, suggerendo che la verità, per quanto possa sembrare assoluta, è in realtà solo un riflesso del nostro punto di vista.
Non è il filo della trama che incanta in “Confidenza”, ma l’interazione tra i personaggi Pietro e Teresa. L’incrocio delle loro vite è l’incanto del racconto. Non è l’intrico del racconto che affascina, ma i bivi esistenziali che Starnone dissemina tra le righe con maestria. Questi bivi sono come pietre sul sentiero, modellando i personaggi e offrendo al lettore uno spaccato intenso della vita e delle scelte che ne tracciano il corso.
Starnone, con sapiente maestria, esplora gli abissi interiori dei suoi personaggi. I suoi libri, dunque, non raccontano soltanto storie, ma conducono il lettore in un viaggio attraverso i paesaggi interiori dei protagonisti. L’autore ritrae con abilità come le scelte personali possano essere modellate dall’esterno, ma siano infine determinate dalla singola essenza di ogni individuo.
Le parole di Starnone disegnano un sentiero interiore, svelando come l’ambiente e le circostanze possano plasmare una persona. La sua scrittura non solo narra, ma interroga, sfidando le nostre convinzioni e permettendoci di vedere il mondo da prospettive nuove. Questa è la maestria di Domenico Starnone: una scrittura che non si limita a raccontare, ma invita alla riflessione sulla nostra esistenza e sulle scelte che tracciano il nostro cammino.

{ 0 comments }

…non si vede bene che col cuore.

Nato a Lione nel lontano millenovecento, Antoine prese presto il volo. I cieli erano la sua tela, il rombo dei motori la sua musica. Lassù si sentiva vivo, lontano dalle pastoie terrene.
Pilota audace ma delicato, tracciava rotte di parole che fendessero l’aria. Scrisse di uomini soli tra le nuvole, di amicizie nate in volo, di amori perduti al suolo. Raccontò di piccoli principi caduti da asteroidi, di volpi addomesticate, di rose da proteggere. Parlò di essenziale e invisibile, di cuori che vedono l’essenza.La sua prosa era un aquilone gettato nel vento, leggera ma salda. Frasi telegrafiche tracciavano paesaggi interiori vasti, laconiche pennellate disegnavano sentimenti profondi. Il suo pennello pilota dipingeva la tenerezza con sublime understatement.
Sparì nei cieli del Mediterraneo nel ’44. Ci lasciò pagine indimenticabili, che ancora oggi, come aquiloni nostalgici, sfidano il tempo, librandosi nell’aria calda dei ricordi. Lì rimane Antoine, aviatore di anime, poeta del cielo.

{ 0 comments }

The art of converting video files…

The art of converting video files from one format to another is not a simple endeavor, yet with the aid of tools like Python and the MoviePy library, this task can be streamlined. Specifically, we will examine how to convert MP4 video files to AVI. MoviePy is a powerful Python library for video processing, which offers both basic functionality such as cutting and concatenation, as well as advanced functions for object tracking, composition, and special effects. In the context of our script, MoviePy is used to read video files and output the converted version. At the heart of our conversion script are just a few lines of code. We first import the necessary modules: os, a standard Python module that provides functions for interacting with the operating system, and VideoFileClip, a class from the MoviePy library used to represent a video. We then use the os.getcwd() method to get the path of the current directory. This is the directory from which the script is run. If you want to use a different directory, this value can be modified. We proceed then with os.listdir(directory) to get a list of all files in the specified directory. For each file, we check if the file name ends with ‘.mp4’, thus indicating it is an MP4 video. Finally, we use VideoFileClip to read the MP4 video. After reading the video, we use the write_videofile() method to write the converted file. The first parameter of the method is the path of the output file. We use os.path.splitext(filename)[0] to get the name of the original file without the extension, then we add ‘.avi’ to create the name of the output file. The codec parameter specifies the codec to use for video encoding. ‘mpeg4’ is a common codec compatible with the AVI format.

import os
from moviepy.editor import VideoFileClip

directory = os.getcwd()

for filename in os.listdir(directory):
if filename.endswith(".mp4"):
video = VideoFileClip(os.path.join(directory, filename))
video.write_videofile(os.path.join(directory, os.path.splitext(filename)[0] + '.avi'), codec='mpeg4', bitrate='4000k')

This script offers a simple method to convert all MP4 videos in a directory to AVI videos. Thanks to the use of MoviePy and Python’s file management functions, we are able to perform the conversion with a few lines of code. An important aspect to consider is that the conversion of video formats can involve a loss of quality, so it’s advisable to keep a copy of the original if quality is a concern. In case the generated AVI files present a low definition quality, it’s possible to improve this by setting a higher bitrate in the write_videofile() method, for instance ‘4000k’, but remember that a higher bitrate can lead to a larger file size.

{ 0 comments }

Quando l’ordine emerge dal caos…

L’aggregazione limitata dalla diffusione (DLA) è un processo che descrive il modo in cui le particelle in movimento, sotto l’influenza di un campo di diffusione casuale, si aggregano per formare strutture ramificate di complessità frattale. Questo fenomeno può essere osservato in diversi contesti naturali, tra cui la crescita dei cristalli, la corrosione dei metalli, la diffusione di fluidi nei terreni porosi, e persino nella formazione dei fulmini. In questo articolo, ci concentreremo sulla simulazione della DLA utilizzando il linguaggio di programmazione Python.

L’algoritmo per la simulazione della DLA è abbastanza semplice. Iniziamo con una griglia 2D e piazziamo una singola “particella” al centro come seme iniziale. Successivamente, in ogni passo della simulazione, rilasciamo un certo numero di “camminatori” casuali in posizioni casuali sulla griglia. Questi camminatori si muovono casualmente fino a quando non incontrano una particella già posizionata sulla griglia, momento in cui si “aggregano” a quella particella e diventano una parte permanente della struttura. Ripetendo questo processo migliaia di volte, si forma una struttura frattale ramificata.

Il codice Python per implementare la DLA inizia creando una griglia di zeri, con una singola particella posizionata al centro. Successivamente, per ogni frame di animazione, vengono generati un certo numero di camminatori che iniziano a muoversi in modo casuale sulla griglia. Ogni camminatore controlla continuamente i propri vicini per vedere se ci sono particelle già presenti: se sì, il camminatore si ferma e diventa una parte permanente della struttura.

Questo processo viene ripetuto finché non si raggiunge un numero massimo di particelle specificato. In ogni frame di animazione, il numero corrente di particelle sulla griglia viene visualizzato, fornendo un feedback in tempo reale sulla crescita della struttura. Infine, l’intera simulazione viene salvata come un file GIF per la visualizzazione offline.

Il risultato è una bellissima simulazione visiva dell’aggregazione limitata dalla diffusione. Risultato che non solo mostra la crescita progressiva di una struttura frattale, ma fornisce anche un’intuizione diretta su come i processi stocastici possano portare alla formazione di strutture complesse e organizzate.

{ 0 comments }

Ogni scena è un haiku delicato…

Il pennello di Miyazaki disegna un mondo dove regna la quiete. Satsuki e Mei atterrano in quel luogo fuori dal tempo, avvolte dal canto degli alberi e del vento. Scoprono i segreti di una natura ancestrale, dove gli spiriti vegliano tra le fronde.
Totoro ha la panciona di un orso e lo sguardo vispo di un bambino. Si mostra solo a chi serba ancora meraviglia negli occhi, stupore di fronte ai miracoli del creato. Insieme giocano, volano, danzano al chiaro di luna.
Anche la malattia perde il suo morso in quel mondo incantato. La morte aleggia, impalpabile, ma la vita pulsa tra fili d’erba e giochi di luce. Miyazaki intreccia i ricordi di infanzia alla leggenda, come canne di bambù. Ogni scena è un haiku delicato, intriso di nostalgia.
Piccole grandi magie riempiono il film, come lucciole nella notte. La natura è rifugio e conforto, dispensatrice di prodigi. Miyazaki culla lo spettatore in una dolcezza agrodolce, quella dei giorni che fuggirono via.
Il mio vicino Totoro è una carezza lieve, un abbraccio che scalda il cuore. Un mondo dove il potere salvifico della fantasia avvolge dolcemente lo spettatore.

{ 0 comments }

come un lino a sventolare

C’è un tempo perfetto per fare silenzio
Guardare il passaggio del sole d’estate
E saper raccontare ai nostri bambini quando
È l’ora muta delle fate…

Non sono i connettori a tessere l’ordito delle frasi, né le parole che echeggiano fredde come l’inverno. Non è il vento a increspare lievi onde sull’acqua salmastra, riflettendo la luce dell’alba, quella luce fioca e tenera. Non è l’ennesimo giorno disteso come un lino a sventolare.
Non sono le vocali che schioccano nell’aria come frustate, né le chiamate di una madre al figlio, pronunciate con affetto e amore la sera. Non è quel tormento sottile che pulsa nelle tempie come un cuore invisibile. Non sono sussurri oziosi in una stanza afosa.
Non sono gli anni addolciti dall’oblio dei ricordi. Non è la notte che piomba d’improvviso, troppo precoce, ai margini del giorno. Non è il fruscio delicato delle foglie sotto i nostri passi d’ogni giorno. Non è il muto desiderio di un’adolescenza timida. Non sono le preghiere sussurrate dalle donne pentite.
Non è la vergogna per l’estasi della carne. Non è l’ammutolirsi di una voce, lo strappo nel cuore, la schiena che si incurva. Non sono lacrime che scorrono come rivoli di dolore. Non sono sospiri pesanti che appesantiscono l’aria di mestizia.
No, non è nulla di tutto questo. È solo il tempo, che scorre inesorabile.

Dicono che c’è un tempo per seminare
E uno più lungo per aspettare
Io dico che c’era un tempo sognato…
Che avremmo dovuto sognare.

{ 0 comments }

Perché muoiono così presto?

La storia è nota: il Giappone piegato e distrutto dopo la resa. Fra le macerie, la fuga di due fratelli verso un riparo impossibile. Lui quattordici anni, lei quattro. Lui si chiama Seita, tiene la mano a Setsuko sua sorella.

Scappano da un presente atroce verso un futuro negato. Davanti agli occhi brandelli di città e corpi straziati. Nelle narici l’odore acre dei morti. Ma i ragazzi camminano. Per loro la vita coincide ancora con la speranza.

Il disegno è lieve, acquerellato. I dialoghi essenziali. Eppure la crudezza non è edulcorata. È messa a nudo da tratti gentili, resa ancor più lancinante.

I fratelli diventano il Giappone. Lei ha fame, lui la nutre di parole e bugie. Lei ha freddo, lui la copre col suo corpo. Insieme tessono un rifugio di amore contro l’orrore.

Poi, il crepuscolo. Le lucciole danzano nell’aria dolce della sera. “Perché muoiono così presto?”, chiede lei. Lui non sa rispondere. Poco dopo, Setsuko chiude gli occhi per sempre. Anche Seita la raggiunge.

Nel buio risplende il ricordo. Due vite stroncate, eppure densissime. La guerra porta solo morte, eppure l’amore fiorisce. Breve, fugace. Eppure abbagliante come lucciole nella notte.

{ 0 comments }

…cullati dal suo abbraccio discreto

A cosa serve rincorrere la felicità, se essa è simile ad un soffio di vento, imprendibile per sua natura? Meglio lasciarla libera di accarezzarci il viso all’improvviso, portando con sé il profumo di luoghi lontani.
La vita non va aggredita, ma ascoltata; non è una preda da catturare, ma un dono da accogliere così com’è, con le sue tempeste e le sue bonacce. Anche quando ci sembra di brancolare nel buio, fidiamoci che la corrente ci sta conducendo verso rive più luminose.
I momenti difficili sono maestri esigenti che temprano il nostro spirito e ci insegnano l’arte della resilienza. Senza di essi, non sapremmo apprezzare la bellezza quando si palesa nei piccoli miracoli di ogni giorno: il primo caffè del mattino, il sorriso di un amico, il tramonto che infiamma il cielo.
La vera felicità sta nel condividere questi attimi di grazia, nel tessere legami sinceri, nel prendersi per mano anche quando la strada è impervia. Nessuno dovrebbe navigare da solo tra i flutti burrascosi dell’esistenza.
Siamo tutti sulla stessa zattera: aiutiamoci a remare all’unisono, godendoci il viaggio anziché braccare ostinatamente la destinazione. La meta è già qui, in ogni istante vissuto con gratitudine.
Apriamo il cuore alla felicità che ci arriva come brezza leggera, capace di sollevare lo spirito. Lasciamoci trasportare dalle sue correnti, senza pretendere di dirigerne il flusso. Sarà allora che potremo finalmente fluttuare insieme a lei, cullati dal suo abbraccio discreto.

{ 0 comments }