Au fablab @ Flux, 8-12 novembre 2025
Alléger une paire de micros larges diaphragmes NEAT King Bee II (6dB Self Noise) de 1kg pièce pour en faire quelque chose de portable pour du field recording.
Visualiseur en ligne pour fichiers VRML : https://imagetostl.com/view-wrl-online#convert
Navigateur VRML à compiler : https://freewrl.sourceforge.io/examples.html
Peut être possible d'afficher un fichier VRML avevc : https://castle-engine.io/
https://www.qiew.org/
https://web.archive.org/web/20140412054654/http://cic.nist.gov/vrml/vbdetect.html
Maintenant en 3D ! 🍩
Reprise d'un vieux projet de génération de motifs d'après l'algorithme de croissance du Physarum Polycephalum (a.k.a “le blob”), mais en y ajoutant une troisième dimension pour passer du pixel au voxel.
(code source à venir)
(vue de coupe au centre de la grille de voxels)
pipx install vpype pipx inject vpype https://gitlab.com/losylam/vpype-rpgl/-/archive/v0.1.0/vpype-rpgl-v0.1.0.tar.gz
Usage
vpype read input.svg rpwrite output.rpgl
Installation hpplot
git clone https://github.com/rhalkyard/hpplot cd hpplot pipx install .
Usage
hpplot -f query -B 32 /dev/ttyUSB0 output.rpgl
Les sources sont disponibles sur gitlab
D'après la documentation de pipx
1. Utilisation de cookiecutter pour faire un squelette de plugin vpype
# installer cookiecutter pipx install cookiecutter # initialiser un projet à partir du modèle de plugin cookiecutter gh:abey79/cookiecutter-vpype-plugin #
Un formulaire permet de changer le noms du module (ici vpype-rpgl) et de la commande (ici rpwrite)
2. Conversion
Le processus a lieu dans le fichier vpype_rpgl/rpwrite.py
Inspiré du plugin vpype-gcode
from __future__ import annotations import click import copy import vpype as vp import vpype_cli def cplx(p: complex, offset_x, offset_y) -> str: return f"{int(round(p.real)+offset_x)},{int(round(p.imag)+offset_y)}" # @click.command() @click.argument("output", type=vpype_cli.FileType("w")) @vpype_cli.cli.command(group="Plugins") @vpype_cli.global_processor def rpwrite(document: vp.Document, output: typing.TextIO) -> vp.LineCollection: """ Write rp-gl2 files for the vpype pipeline. """ orig_document = document document = copy.deepcopy(document) # do NOT affect the pipeline's document unit_scale = vp.convert_length('mm') # unit_scale = 100 offset_x = -17750 offset_y = -11180 mult = 50 / 1.25 document.scale(mult / unit_scale, mult / unit_scale) lc = vp.LineCollection() layers = document.layers output.write('IN;') output.write('PA;') output.write('SP1;PU;\n') output.write('OS;\n') for (layer_id, layer) in layers.items(): for line in layer: output.write('PU' + cplx(line[0], offset_x, offset_y) + ';\n') for pt in line[1:]: output.write('PD' + cplx(pt, offset_x, offset_y) + ';\n') output.write('PU 0,0 ;\n') return orig_document