summaryrefslogtreecommitdiff
path: root/doc/todo
blob: 4769c5729a089f7eee67b92b4d4e2fb458980a09 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
documentation
    everybody loves documentation!
    installing skdb
    how to use a package
    how to make a package
skdb core:
    units:
        peak and continuous ratings: what are default time constants?
        yaml path resolver: for max/min/peak/continuous/power/torque/height/width etc
        yaml regex resolver: how to do this without matching over entire units .dat?
    statistics:
        arbitrary distributions: processes often follow odd laws (non-gaussian)
        evaluate typical feasible: but dont dump some messy construct
        think about how to utilize statistical data: in search/optimization algorithms
    geom:
        pythonOCC sympy parametric modeling PAF:
        wrap TopoDS_Shape in Shape class:
            make assembly graph yaml dump work:
        get rid of STEP loading spam:
            and other OCC spam:
        real wrapper code: 
            instead of subclassing from OCC:
                opengl example:
            use tags/names for geometries:
        connection graph:
            apply transforms at each arc while traversing: is this done?
            wrap some graph class instead of using directly for easy swapping:
            turn skdb/doc/proposals/assemblies.txt into unit tests:
        part mating:
            collision detection:
                fix BoundingBox:
                    extract minima and maxima from surfaces: kinda important
                explore OpenCASCADE collision detection methods:
                    Constructive Solid Geometry:
                        fix or rewrite internal OCC BRepAlgoAPI boolean methods: 
                interference fit:
                    list of compliant/rigid faces: is this right? shouldnt we be doing FEA instead?
                play:
                    circular peg in a square hole:
                    zero: perfect fit
                    positive: a little bit of slop
                    negative: interference fit
                    signed distance function:
                multi part multi interface mating unit tests:
        cam algorithm selection: some parts are more 2.5d than others...
    generating instructions:
        assembly planner: #aka assembly sequence planner, assembly operation planner, etc.
            motion path planner:
                collision detection: #for collision-free insertion
                    investigate third party libraries for collision detection:
                    search literature for other methods:
            write an open source assembly planner:
        figure out something better than the techniques.py proposal:
        lego assembly instructions demo:
            "make space base":
            step by step images:
inventory:
    container tags: ['!ziploc', '!fishtub', etc]
    location schema: any ideas? no dGPS or RFID please. '!shelf'?
package code:
    generate instructions for making a package: lego explohzionn
    technology readiness level:
    metadata resolution description: [stub, incomplete, usable, finished, obsessive]
clients: #desktop, unless you really like writing javascript?
    pyjamas: ?
    visualization:
        dependency tree browser:
        CAD file visualization:
        screenshot gallery generator from CAD files: #is this not the same thing as above?
            partially working: imgcad.py (ask kanzure)
            better version:
servers:
    web/web.py:
        views:
            generic yaml tree: 
                js code folding: pyjamas
                highlighting: geshi?
                links to skdb tags:
            package metadata:
                links to dependencies:
                backlinks to functionality:
                    taxonomy browser:
            3d: 
                ldraw:
                step:
                iges:
                stl:
                dxf: ew
            pcb formats:
                gerber:
                eagle:
                kicad:
                pdf: (?)
            gcode:
        protocol annotation module:
            protocola: #50% bog water, 50% chocolate syrup. yummy!
        instruction output: #assembly, etc.
        b2b: Tie-in of "open source hardware directories" with "one-click ordering" and sourcing of materials from suppliers
        funding models:
            rspp: as in ' http://www.logarithmic.net/pfh/rspp '
            oshwbank:
            paypal button: this ought to be easy
            bounty:
import:
    repo_to_yaml.py:
        todo: recognize when there is a list of artifacts or any other node element
        investigate perl xml2yaml.pl: http://search.cpan.org/~markov/XML-Compile-1.07/bin/xml2yaml
    pov-to-X conversion:
    parser for peeron and lugnet:
    parse matweb scrape: (samrose)
    ldraw to step: implicit geometry recognition?
    stl to step "primitive recognition":
        feasibility: low
    fix slow loading of STL files in OpenCASCADE:
    ldr to pyldraw: needs testing (ask kanzure)
        ldr to solid:
            investigate ldr primitives:
            LGEO: maybe? (~700 parts)
                pov2rib: figure out antlr, play with dot g files
                    generate povray parser:
                        figure out antlr: convert from BNF->g grammar? (kanzure)
                        figure out pyparsing:
        convert ldr lego theo jansen mechanism:
    pybox2d to skdb:
        convert theo jansen mechanism:
export: #external simulations
    pyODE:
    pybox2d:
    cam algorithms:
        pycam: 
        kurve: 
        libactp:
        celeron55 gerber: maybe
stuff to package:
    screw: 
        catalog generator script:
        cad generator:
            how to deal with generated data:
            not blow up without OCC:
        internal graph model of a spring:
            two bearings:
            spring:
            equation:
    thread:
        common metric sizes:
        common SAE sizes:
        cad generator: 
    lego:
        finish technic grammar:
        parse .lst and catalog files:
        bricklink cost evaluator: scraper
        cad generator:
        interface generator:
        fix existing cad models: scale is wrong. re-measure?
    trans-tech: at least at low resolution
    construction materials: #these are categories, not individual materials. low-tech and inexpensive to start with
        metal:
        plastic:
        wood:
        foam:
        paper:
        glass:
        rubber:
        ceramic:
        composite:
            concrete:
        food: cheese robots, attack!
        phase change materials: does cheese count? maybe tags instead of categories
    bearing:
    plastic gel box case:
        get cad files from tito:
            author: Tito Jankowski
            links:
            - "http://www.pearlbiotech.com/wp-content/uploads/2009/05/pearl_biotech-gel_box_cad.skp"
        find and verify generator script:
            author: Michael Katsevman
            links:
            - "http://groups.google.com/group/diybio/msg/fb0cb0b7d6bf9b35"
            - "http://logarchy.org/electrophoresis.py"
    test tube holder: #why?
        standard eppendorf tube rack: much more useful
        96 well plate: 
    transilluminator: #gel imager
    mechmate:
    arduino:
    technical devices: i guess? at least its a source of ideas for components
    mcmaster catalog: same deal