Test for generating stylized circuit traces from images

Related tags

Testingjacktrace
Overview

test for generating stylized circuit traces from images

Author: Miller Hooks - 12.26.2021

Concept

image -> split into plates via dithering -> make image positives, negatives and masks -> halftone as needed -> voronoi stippling -> make traces - rinse/repeat

Source

Some python for doing some dithering and a dockerfile to make a CUDA docker container as a start, just in case GPU is needed.

Voronoi Stippling and Tracefinding

StippleGen2

https://github.com/evil-mad/stipplegen/releases/tag/v2.31

Dithering

https://scipython.com/blog/floyd-steinberg-dithering/ https://en.wikipedia.org/wiki/Floyd%E2%80%93Steinberg_dithering Example in Source directory

TODO

Meshroom Workflow and Interface

This seems to mirror functionally, how I see a good process for doing this working. Also it's open source and python with a QT interface so it could be aped entirely or just make the tool a plugin for Meshroom or somethign.

https://meshroom-manual.readthedocs.io/en/latest/feature-documentation/gui/index.html

Halftones

https://github.com/philgyford/python-halftone

Traces

JS Circuit Board Generator

https://codepen.io/tsuhre/pen/xgmEPe

https://github.com/vygr/Python-PCB

SKiDL

https://hackaday.com/2016/12/28/skidl-script-your-circuits-in-python/ https://devbisme.github.io/skidl/ https://github.com/devbisme/skidl https://xess.com/blog/are-you-in-an-abusive-relationship-with-your-schematic-editor/

SAT Router

monosat_router.py - https://gist.github.com/nmz787/10c60e76941a8e5de624454666ea65b3 cryptominisat_router.py - https://gist.github.com/nmz787/ae4a6121ce4aa42c2caed5b062b97c70#file-cryptominisat_router-py Based on this paper "Scalable, High-Quality, SAT-Based Multi-Layer Escape Routing" - https://dl.acm.org/doi/10.1145/2966986.2967072

PCBFlow

Looks nice. Based on CuFlow https://github.com/michaelgale/pcbflow

CuFlow looks promising

https://excamera.com/sphinx/article-cuflow-crossbar.html

Visolate: Voronoi Toolpaths for PCB Etching

https://groups.csail.mit.edu/drl/wiki/index.php?title=Visolate:_Voronoi_Toolpaths_for_PCB_Mechanical_Etch

KiCAD... Just use KiCAD. It's made by CERN

https://www.kicad.org/

Nice Containerized KiCAD for scripting. https://github.com/productize/kicad-automation-scripts https://github.com/devbisme/kicad-3rd-party-tools#layout-tools

This looks like the business https://forum.kicad.info/t/announcing-kicad-freerouting-plugin/16799

or use PCBModE. It's Pretty

https://boldport.com/pcbmode https://pcbmode.com/ https://hackaday.com/tag/pcbmode/

Selecting Via Points to Join

  • Select a region via layer mask
  • Select via points as a pseudo-random distrobution as FROM vias
  • Select TO viasvia some sort of drunkards walk to a f(x) of min/mean/max neighbors
  • Route paths
  • group new joined traces and vias and ignore
  • repeat until no vias remain. If number of vias is odd, drop the last one

Image Example Assets

Big Wave Vector PDF and some process files from a test run.

Owner
Miller Hooks
Natural User Interface enthusiast. Owner of several broken robots.
Miller Hooks
pytest plugin for distributed testing and loop-on-failures testing modes.

xdist: pytest distributed testing plugin The pytest-xdist plugin extends pytest with some unique test execution modes: test run parallelization: if yo

pytest-dev 1.1k Dec 30, 2022
create custom test databases that are populated with fake data

About Generate fake but valid data filled databases for test purposes using most popular patterns(AFAIK). Current support is sqlite, mysql, postgresql

Emir Ozer 2.2k Jan 04, 2023
Mixer -- Is a fixtures replacement. Supported Django, Flask, SqlAlchemy and custom python objects.

The Mixer is a helper to generate instances of Django or SQLAlchemy models. It's useful for testing and fixture replacement. Fast and convenient test-

Kirill Klenov 871 Dec 25, 2022
Generic automation framework for acceptance testing and RPA

Robot Framework Introduction Installation Example Usage Documentation Support and contact Contributing License Introduction Robot Framework is a gener

Robot Framework 7.7k Jan 07, 2023
Django-google-optimize is a Django application designed to make running server side Google Optimize A/B tests easy.

Django-google-optimize Django-google-optimize is a Django application designed to make running Google Optimize A/B tests easy. Here is a tutorial on t

Adin Hodovic 39 Oct 25, 2022
A grab-bag of nifty pytest plugins

A goody-bag of nifty plugins for pytest OS Build Coverage Plugin Description Supported OS pytest-server-fixtures Extensible server-running framework w

Man Group 492 Jan 03, 2023
Repository for JIDA SNP Browser Web Application: Local Deployment

JIDA JIDA is a web application that retrieves SNP information for a genomic region of interest in Homo sapiens and calculates specific summary statist

3 Mar 03, 2022
Statistical tests for the sequential locality of graphs

Statistical tests for the sequential locality of graphs You can assess the statistical significance of the sequential locality of an adjacency matrix

2 Nov 23, 2021
Given some test cases, this program automatically queries the oracle and tests your Cshanty compiler!

The Diviner A complement to The Oracle for compilers class. Given some test cases, this program automatically queries the oracle and tests your compil

Grant Holmes 2 Jan 29, 2022
Code coverage measurement for Python

Coverage.py Code coverage testing for Python. Coverage.py measures code coverage, typically during test execution. It uses the code analysis tools and

Ned Batchelder 2.3k Jan 04, 2023
Web testing library for Robot Framework

SeleniumLibrary Contents Introduction Keyword Documentation Installation Browser drivers Usage Extending SeleniumLibrary Community Versions History In

Robot Framework 1.2k Jan 03, 2023
A pure Python script to easily get a reverse shell

easy-shell A pure Python script to easily get a reverse shell. How it works? After sending a request, it generates a payload with different commands a

Cristian Souza 48 Dec 12, 2022
ApiPy was created for api testing with Python pytest framework which has also requests, assertpy and pytest-html-reporter libraries.

ApiPy was created for api testing with Python pytest framework which has also requests, assertpy and pytest-html-reporter libraries. With this f

Mustafa 1 Jul 11, 2022
FaceBot is a script to automatically create a facebook account using the selenium and chromedriver modules.

FaceBot is a script to automatically create a facebook account using the selenium and chromedriver modules. That way, we don't need to input full name, email and password and date of birth. All will

Fadjrir Herlambang 2 Jun 17, 2022
This file will contain a series of Python functions that use the Selenium library to search for elements in a web page while logging everything into a file

element_search with Selenium (Now With docstrings 😎 ) Just to mention, I'm a beginner to all this, so it it's very possible to make some mistakes The

2 Aug 12, 2021
Python 3 wrapper of Microsoft UIAutomation. Support UIAutomation for MFC, WindowsForm, WPF, Modern UI(Metro UI), Qt, IE, Firefox, Chrome ...

Python 3 wrapper of Microsoft UIAutomation. Support UIAutomation for MFC, WindowsForm, WPF, Modern UI(Metro UI), Qt, IE, Firefox, Chrome ...

yin kaisheng 1.6k Dec 29, 2022
Python Projects - Few Python projects with Testing using Pytest

Python_Projects Few Python projects : Fast_API_Docker_PyTest- Just a simple auto

Tal Mogendorff 1 Jan 22, 2022
A rewrite of Python's builtin doctest module (with pytest plugin integration) but without all the weirdness

The xdoctest package is a re-write of Python's builtin doctest module. It replaces the old regex-based parser with a new abstract-syntax-tree based pa

Jon Crall 174 Dec 16, 2022
py.test fixture for benchmarking code

Overview docs tests package A pytest fixture for benchmarking code. It will group the tests into rounds that are calibrated to the chosen timer. See c

Ionel Cristian Mărieș 1k Jan 03, 2023
This is a simple software for fetching new changes to remote repositories automatically.

Git Autofetch Git Autofetch is a simple software for fetching new changes from a repo to local repositories after a set time interval. This program is

Shreyas Ashtamkar 10 Jul 21, 2022