machineagency / taxon Goto Github PK
View Code? Open in Web Editor NEW⚙️ A language for formal reasoning with digital fabrication machines
⚙️ A language for formal reasoning with digital fabrication machines
Feature requests:
Support e.g. bridge length, overhang angle, and dimensional accuracy in a print. Allow the user to enter the results and tie it to a machine. Create a class to represent this information. Allow user to ask simple queries using the response maps.
idea for SM-fine: just parameter settings. these are compared against clustered data (unsupervised learning) coming from either past prints or an online repository of prints. we condition clusters on: model features and machine topologies from SM-coarse. E.g. people using a prusa typically used 2 more of parameterX versus other 3d printer, 1 more than gantry systems, and 2 more than other platform-moves systems.
(clamp and vise support)? maybe
Revamp the interface to support higher level questions somehow for someone who knows nothing about machines. For example, using a constraint we already have of having the model fit in the work envelope, either have some annotation, or check boxes e.g. "model fits in container," for hard constraints. For soft constraints, this is trickier; consider the example of driveTrain type, maybe explaining tradeoffs and using that to fill in the JSON. In either case, having just the raw JSON filter isn't super usable.
Idea: create an share a working demo (every 2-3 weeks), demo to lab, maybe post to Twitter.
Implementing RoTs, checking heuristics, having its own widget.
Based on our invariant.
Drop down for heuristic, then based on heuristic, drop down for operator, then possible values (e.g. slider or radio boxes).
From form data, synthesize query that executes immediately.
Enforce invariants such as:
Add more later
Expand from simply having price to listing an object with price, sourcing, how many people have it, etc. to help beginner users make informed decisions.
Implement the checking as part of the GUI—think about how to do this checking. My hunch is that we need to revive the bottom frame.
Hard constraints to check
Soft constraints
Including any changes that we need to make to accommodate these, e.g. delta bot kinematics.
Don't do parts assembly yet.
Specifically, toggle visuals for: kinematic paths, dofs maybe, root nodes, work envelope.
This may require showing stock material, but as far as I know we would want to defer stock to SM-fine. Will think about.
Specifically, check: is it possible for the tool plunged to maximum depth to crash into the stock? Is this a model-level or CAM-level check?
Main idea: the "stages" should look like wireframe or transparent boxes with actual machine parts inside e.g. a leadscrew or timing belt, even though these parts are purely cosmetic.
Connections should be marked probably as a transparent bounding box with labeling information.
Somehow embed unit information in SM-coarse programs. Exactly how to do so requires some thought. Some leads.
My initial thought: use constants like "mm" and "dollars" in SM-coarse program. Desugar all unit-ed properties into default units when converting to json. Resugar when displaying the program—possibly just using the units we want.
During a comparison preview:
Keep thinking about this and how this might work.
Perhaps: previewing model sizes of recommended models, highlighting tools that would be needed on jubilee or another tool changing machine, or highlighting part of the machine that deserves extra attention for a particular model/job.
If we characterize structural loop, maybe we can project parts of the Axidraw work envelope that are subject to more wobble (calculating this is possible with volumetric and drive mechanism data, but not trivial), and give an interface to move the drawing away from those zones if there are fine features.
More importantly, this would enable live editing of machines.
Click on simulation, highlight corresponding code in editor.
Click on editor, highlight corresponding block in simulation.
Attributes: step displacement ratio we calculate (it's a distance). Person could know: kind of motor, what kind of gear—we calculate distance -> full rotation of motor corresponds to 2mm travel e.g.
E.g. never use milling with jubilee because it uses timing belts.
mechanisms give constraints. : speed, backlash, force -> “this machine can move quickly in xy but not z”
Doesn't have to be fancy
tool characteristics e.g. wattage, horsepower for spindle are uninterpreted. just set baseline recommendations outside the language. jk interpreted: just rules of thumb.
ParallelStage
CrossStage
add either the old moving stack (e.g. Axidraw) or gantry (e.g. Jubilee), perhaps have these specified by an optional property.There are on-action RoTs, and there are "always" or "what's feasible" RoTs, and the latter can be used to filter machines (possibly given no other constraints, or given constraints with materials or models). Find a way to identify these quickly but also use them to filter machines.
Up/down for plotter, extrude cylinder for printer, spin spindle for mill.
Can port over stuff from previous mom
Materials: on the the topic of where materials go, maybe just have them in a procedure call, with static checking about what machines work with what materials.
Regions and Sensors: These don't go in the machine—they are only instantiated with library calls. Try to have minimum effort here.
let material = ...
sees the stock loaded in the windowBackus-Naur, baby.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.