Skip to content

Instantly share code, notes, and snippets.


Jami Pekkanen jampekka

View GitHub Profile
def project_to_ground(pos, camera, height=0.0):
matWorldInverse = np.array(camera['matrixWorldInverse']).reshape(4, 4).T
matWorld = np.linalg.inv(matWorldInverse)
proj = np.array(camera['projectionMatrix']).reshape(4, 4).T
origin = matWorld[:,3][:-1]
deproj =, np.linalg.inv(proj))
direction =, (pos[0], pos[1], 0.5, 1.0))
direction = direction[:-1]/direction[-1]
direction -= origin
View enginemodel.json
[[-19.150852756939567, -0.86960922500437798], [-10.0, -0.67314024428906383], [-4.0, -0.53092823365752206], [-2.5, -0.34978573520149692], [-1.7, -0.097415037510977784], [-1.2, 0.031117285095661945], [0.0, 0.26398121786496032], [3.0, 0.71245888265216406], [5.2096257357368652, 0.93516331581155065]]
import numpy as np
import numpy
import math
import itertools
import random
import matplotlib.pyplot as plt
class Som(object):
"""Self-organizing map
{zipWith, fold, map, zipAll, findIndex, objsToLists} = require "prelude-ls"
fobj = -> (...args) ->
me = {}
callable = f.apply(me, args) ? me
me.__proto__ = callable.__proto__
callable.__proto__ = me
return callable
export isScalar = (v) -> typeof v == 'number'
jampekka /
Last active Aug 29, 2015
# Motivation for this madness: I often find that simply a function is
# a nice interface objects. However, often later on a need arises that
# we need also something else in a return value / argument, which currently
# calls for refactoring of every call site. In Python this can be hacked
# around using __call__. This would be a way to hack around it in LiveScript.
# And anyway I think having separate "classes" and "objects" is a bit stupid
# historical artefact. KISS!
fobj = (f) -> (...args) ->
View test.html
<h1 id="otsake"></h1>
<script type="text/javascript" src="coffee-script.js"></script>
<script type="text/javascript" src=""></script>
<script type="text/coffeescript">
otsake = $("#otsake")
otsake.text("Hello DOM!")
import numpy as np, matplotlib.pyplot as plt, sys
from scipy.ndimage.filters import gaussian_filter
def transparent_jet(cutoff=0.2):
colormap ='jet')
alphas = np.linspace(0.0, 1.0, colormap.N)
alphas[alphas < cutoff] = 0.0
alphas[alphas > cutoff] = 1.0
colormap._lut[:-3,-1] = alphas
jampekka /
Created Sep 17, 2014
Gstreamer 1.0 v4l2src with Python halts
# PyGST with Gst 0.10 works fine
import gst
pipe = gst.parse_launch("""v4l2src device=/dev/video0 !
appsink sync=false max-buffers=1 drop=true name=sink emit-signals=true""")
sink = pipe.get_by_name('sink')
View index.html
<script src=""></script>
<script src=""></script>
<script src=""></script>
<link href="" rel="stylesheet" media="screen">
<link href="" rel="stylesheet" media="screen">
<link href="" rel="stylesheet" media="screen">
View mjuna.geojson
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.