Skip to content

Instantly share code, notes, and snippets.

View jay3sh's full-sized avatar

Jayesh Salvi jay3sh

View GitHub Profile
@jay3sh
jay3sh / parametric-bushing.py
Created June 11, 2011 06:30
Parametric Bushing generated using Cadmium
#!/usr/bin/python
#
# Parametric bushing
# derived from OpenSCAD script from http://www.thingiverse.com/thing:8697
#
from math import *
from cadmium import *
def generate(height, radius, hole_r, border, recess, num_support):
@jay3sh
jay3sh / chainwheel.py
Created June 11, 2011 06:59
Caterpillar Chain Wheel
#!/usr/bin/python
#
# Caterpillar Chain Wheel
# derived from OpenSCAD script from http://www.thingiverse.com/thing:8877
#
import sys
from math import *
from cadmium import *
@jay3sh
jay3sh / abstract.py
Created June 11, 2011 07:07
Abstract art
#!/usr/bin/python
from cadmium import *
b0 = Box(x=4,y=4,z=4, center=True)
s0 = Sphere(radius=2.5)
(s0 - b0).toSTL('abstract.stl')
@jay3sh
jay3sh / menger-sponge.py
Created June 12, 2011 09:55
Menger Sponge generator
#!/usr/bin/python
from cadmium import *
LIMIT = 9
def count_zeroes(lst):
return sum(1 for x in lst if x == 0)
def menger_void(k):
# Copyright (c) 2010, Philip Plante of EndlessPaths.com
#
# 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 use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
@jay3sh
jay3sh / shear-test.py
Created June 27, 2011 04:49
PythonOCC Shear transform testing
from OCC.BRepPrimAPI import *
from OCC.BRepBuilderAPI import *
from OCC.gp import *
from OCC import StlAPI
from OCC.Precision import *
from OCC.Utils.Topology import *
from OCC.TopoDS import *
from OCC.TopAbs import *
from OCC.BRepMesh import *
from OCC.BRep import *
@jay3sh
jay3sh / webworker-debug.js
Created August 16, 2011 15:22
WebWorker postMessage for debug
//
// In the Main thread
//
var worker = new Worker('/path/of/webworker/code.js')
worker.onmessage = function (e) {
var result = JSON.parse(e.data);
if(result.type == 'debug') {
console.log(result.msg);
} else if(result.type == 'response') {
@jay3sh
jay3sh / webworker-stacktrace.js
Created August 16, 2011 15:27
WebWorker stacktrace for debug
//
// In the WebWorker
//
function debug(msg) {
postMessage(JSON.stringify({type:'debug',msg:msg}));
}
onmessage = function (e) {
try {
@jay3sh
jay3sh / stack-trace-without-exception.js
Created August 20, 2011 10:33
print stack trace anywhere
function foo(args) {
var i, j, k;
// ...
// j acquires some interesting value
// Who called foo when j took this interesting value?
//
var e = new Error('dummy');
var stack = e.stack.replace(/^[^\(]+?[\n$]/gm, '')
.replace(/^\s+at\s+/gm, '')
@jay3sh
jay3sh / minimum-opengles-code.html
Created August 26, 2011 13:46
Minimum length WebGL code to draw least meaningful output - A straight line
<html>
<head>
<title></title>
<script type="text/javascript">
var fragShaderSource = "\
precision highp float;\
uniform vec4 u_color;\
void main(void) {\
gl_FragColor = u_color;\
}\