# Stanislas Castella-Soeters

M1 Management de l'innovation de l'innovation : 2025 - 2026  
<stanislas.castella-soeters@etu.sorbonne-universite.fr>

---

##### **Exercice 1 - Impression test : <span style="text-decoration: underline;">Marque page chat</span>, (16 décembre 2025 - 9 janvier 2026)**

Cette impression est une impression test, l'objectif était de se familiariser avec l'impression 3D.

Matériel utilisé:

- Application PrusaSlicer et Printables
- Imprimante 3D Prusa MK4S
- Filament PLA noir brillant

Je souhaitais imprimer quelque chose d'utile et que je ne possédai pas. L'idée d'un marque page m'a semblé approprié pour une première impression 3D. J'ai donc cherché des modèles de marque page sur Pintables.com. Trois ont retenu mon attention, une épée, les mains d'un monstre et un chat noir. Finalement j'ai imprimé le chat noir, [voici le lien](https://www.printables.com/model/1331558-cat-bookmark) et voici les images extraites du site Pintables:

[![Screen Shot 2026-02-06 at 16.10.38.jpg](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-02/scaled-1680-/screen-shot-2026-02-06-at-16-10-38.jpg)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-02/screen-shot-2026-02-06-at-16-10-38.jpg)

*Image 1: Modèle 3D du marque page chat sur Pintables*

[![Screen Shot 2026-02-06 at 16.26.08.jpg](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-02/scaled-1680-/screen-shot-2026-02-06-at-16-26-08.jpg)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-02/screen-shot-2026-02-06-at-16-26-08.jpg)

*Image 2: Visualisation du modèle dans PrusaSlicer*

  
![78973808289__4791FF97-54EF-46F4-B58A-98F40773D9D8.jpeg](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-02/scaled-1680-/78973808289-4791ff97-54ef-46f4-b58a-98f40773d9d8.jpeg)*Image 3: Photographie de mon impression 3D test en action*

##### **Exercice 2 - Impression d'un objet en contenant un autre : <span style="text-decoration: underline;">Sifflet</span> (**

[![IMG_0769.jpeg](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-02/scaled-1680-/img-0769.jpeg)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-02/img-0769.jpeg)

##### **Exercice 3 - Impression d'un objet modélisé sur OpenScad : <span style="text-decoration: underline;">Maracas avec 4 billes</span> (6 Février 2026)**

[![Screen Shot 2026-02-06 at 15.04.57.jpg](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-02/scaled-1680-/hJescreen-shot-2026-02-06-at-15-04-57.jpg)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-02/hJescreen-shot-2026-02-06-at-15-04-57.jpg)

```bash


/* [General Settings] */
// Select what to render
mode = "view_all"; // [view_all, print_half_1, print_half_2, print_tiny_spheres]

/* [Dimensions] */
/* [Détails de la maracas] */
// Longueur total de la maracas (mm)
rattle_length = 100; // [80:150]
// Diamètre de la sphère de la maracas (mm)
head_diameter = 45; // [30:80]
// Diamètre de la poignée (mm)
handle_diameter = 12; // [8:25]
// Épaisseur des parois du maracas (mm).
wall_thickness = 2.4; 

/* [Détails des quatres billes] */
// Number of tiny spheres
sphere_count = 4;
// Wall thickness for the tiny spheres
sphere_wall = 0.8; 
// Distance to move spheres away from the rattle body
sphere_distance_from_body = 20;

/* [Detail] */
// Smoothness of the curves
$fn = 100;

// --- Calculated Values ---
tiny_sphere_size = head_diameter / 5;

// --- Geometry Modules ---

module rattle_body() {
    // We group the geometry and move it UP so the bottom touches Z=0
    translate([0, 0, handle_diameter/2]) 
    union() {
        // 1. The Hollow Head
        translate([0, 0, rattle_length - (head_diameter/2)])
        difference() {
            sphere(d = head_diameter);
            sphere(d = head_diameter - (wall_thickness * 2));
        }
        
        // 2. The Handle
        cylinder_height = rattle_length - (head_diameter/2) + 2; 
        
        translate([0,0,0])
        union() {
            cylinder(h = cylinder_height, d = handle_diameter);
            // The bottom cap
            sphere(d = handle_diameter);
        }
    }
}

module tiny_spheres_set() {
    // Generate the row of spheres
    for (i = [0 : sphere_count-1]) {
        // X spacing: diameter + 5mm gap
        x_pos = i * (tiny_sphere_size + 5);
        
        // Z position: Lift up by radius so the bottom touches 0
        z_pos = tiny_sphere_size / 2;
        
        translate([x_pos, 0, z_pos])
        difference() {
            sphere(d = tiny_sphere_size);
            sphere(d = tiny_sphere_size - (sphere_wall * 2));
        }
    }
}

// --- Rendering Logic ---

if (mode == "view_all") {
    // 1. Render the Rattle (Base is at Z=0 inside the module)
    rattle_body();
    
    // 2. Render the Tiny Spheres
    // We move them to the right of the rattle head
    translate([head_diameter/2 + sphere_distance_from_body, 0, 0])
    tiny_spheres_set();
}

else if (mode == "print_half_1") {
    // Lay rattle flat for printing (Left Half)
    rotate([0, 90, 0])
    difference() {
        // We must undo the "standing" translation to rotate it correctly around center
        translate([0,0,-handle_diameter/2]) rattle_body();
        translate([-500, -1000, -500]) cube([1000, 2000, 1000]);
    }
}

else if (mode == "print_half_2") {
    // Lay rattle flat for printing (Right Half)
    rotate([0, -90, 0])
    difference() {
        translate([0,0,-handle_diameter/2]) rattle_body();
        translate([-500, -1000, -500]) cube([1000, 2000, 1000]);
    }
}

else if (mode == "print_tiny_spheres") {
    // Render the spheres sitting on the bed
    tiny_spheres_set();
}
```

##### **Exercice 4 - Arduino** 