Skip to content

Instantly share code, notes, and snippets.

View eliemichel's full-sized avatar

Elie Michel eliemichel

View GitHub Profile
"""
Transfer material data from active to selected objects.
If the active object is a group instance, recurse over its elements and match
destination by name (object selection is then ignored).
Copyright (c) 2018 -- Elie Michel
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the “Software”), to deal in
the Software without restriction, including without limitation the rights to
import bpy
class IconPanel(bpy.types.Panel):
"""Creates a Panel width all possible icons"""
bl_label = "Icons"
bl_idname = "icons_panel"
bl_space_type = 'PROPERTIES'
bl_region_type = 'WINDOW'
bl_context = "object"
@eliemichel
eliemichel / hscript
Last active July 16, 2018 13:07
Fade out offset
// Fade in
{
float x0 = ch("../PARAM/start_crossfade_frame");
float x1 = ch("../PARAM/end_crossfade_frame");
float a1 = 0.01;
float a0 = a1 / (2 * (x1 - x0));
float b1 = a0 * (x1 - x0) * (x1 - x0) - a1 * x1;
return if($FF < x0, 0, if($FF < x1, a0 * ($FF - x0) * ($FF - x0), a1 * $FF + b1));
}
// Fade out
"""
autoRotate
==========
Align the selected edge to the world X axis of the scene by rotating the whole mesh.
Usage
-----
Select exactly one edge, then run the script.
"""
autoRotate
==========
(Blender edition -- also available for Maya)
Align the selected edge to the world X axis of the scene by rotating the whole mesh.
Usage
-----
// Copyright (c) 2017 - Élie Michel
// License: CC BY 3.0
// Please credit even if you are just re-using the particle system.
// Sync with 'Image' buffer
const float dt = 0.001;
mat3 particleSpaceMatrix(vec2 origin, vec2 velocity) {
vec3 O = vec3(origin, 1.);
vec3 X = normalize(vec3(velocity, 0.));
struct Ray {
vec3 origin;
vec3 direction;
};
bool intersectRaySphere(out vec3 intersection, in Ray ray, in vec3 center, in float radius) {
vec3 o = center - ray.origin;
float d2 = dot(ray.direction, ray.direction);
float r2 = radius * radius;
#define a(p) textureLod(iChannel0, p, 2.5)
#define t texture(iChannel1,
void mainImage( out vec4 c, vec2 g )
{
c = a(g /= iResolution.xy);
vec2 x = vec2(20);
vec4 n = t round(g*x - .3) / x);
vec2 z = g*x * 6.3 + (t g * .1).rg - .5) * 2.;
x = sin(z) - fract(iTime * (n.b + .1) + n.g) * .5;
// Author: Élie Michel
// License: CC BY 3.0
// July 2017
void mainImage( out vec4 f, in vec2 c )
{
vec2 u = c / iResolution.xy,
n = texture(iChannel1, u * .1).rg; // Displacement
f = textureLod(iChannel0, u, 2.5);
/**
* Extrait de code à exécuter dans la console du navigateur pour ajouter
* sous les prix le prix au mètre-carré et le prix par chambre dans les
* résultats de logement sur pap.fr
* Fonctionne au 17/04/2017, mais puisque le code est très ad-hoc il faudra
* sûrement le mettre à jour à chaque màj de pap.fr
*
* Existe aussi pour seloger.com :
* https://gist.github.com/eliemichel/1c6f27be406a22a0d5114020c616d3e8
*