Repository files navigation

Linux/OS: Build Status Windows: Build status Documentation: Documentation Status

PICwriter README

Picwriter (Photonic-Integrated-Circuit Writer) is a Python module, built above the gdspy module, aimed at simplifying the process of designing complex masks for photonic integrated circuits through a prebuilt library of easy-to-implement PCells (technically all sub-classes of the gdspy Cell class). Supported blocks currently include:

  • waveguides (strip, slot, and sub-wavelength grating)
  • grating couplers (straight and focusing)
  • tapers
  • strip to slot waveguide mode converters
  • directional couplers
  • spiral structures (auto-generated from specified waveguide length)
  • 1x2 multi-mode interferometers
  • 2x2 multi-mode interferometers
  • ring & disk resonators with automatic bus waveguide wrapping
  • distributed bragg reflectors
  • Mach-Zehnder interferometers
  • alignment markers (for photolithography and ebeam lithography)
  • metal routes
  • bond pads

Stay tuned, more components are coming soon! In the meantime, check out the documentation for this project at picwriter.readthedocs.io.

Features

The ultimate goal of this module is to reduce the time required to generate photonic integrated circuit mask designs, by extending the functionality of the gdspy library.

  • High-level specification of common building blocks for photonic-integrated circuits
  • Fabrication specific masks. Specify the photoresist type ('+' or '-') and fabrication type (such as 'ETCH') and PICwriter will generate the appropriate mask files for electron-beam or photolithography.
  • All library components are subclasses of the gdspy Cell class, so gdspy Cell features such as rotation(), copy(), flatten(), get_bounding_box(), etc. are all supported.
  • Unique cell identifiers. Add components to your mask layout without worrying about name-clashes.

Installation

Dependencies:

With a working version of python, all dependencies should be automatically installed through the instructions below.

  • Python (tested with versions 2.7, 3.4, 3.5, 3.6 for Linux/OS, tested with versions 2.7, 3.4, 3.5, 3.6, 2.7-x64, 3.4-x64, 3.5-x64, 3.6-x64 for Windows.)
  • gdspy (tested with versions 2.7, 3.4, 3.5, and 3.6)
  • Numpy
  • UUID
  • SciPy
  • Python-future (only for Python 2)

Linux / OS X

Both options should automatically install all dependencies (like gdspy, numpy, etc.).

Option 1: using pip:

pip install picwriter

Option 2: download the source from github and build/install with:

python setup.py install

Windows

The best way of obtaining the library is by installing the prebuilt binaries.

  • First, go to the gdspy appveyor project page, then click the python environment that matches your python version and processor type. For example, if you have a 64-bit processor with Python version 3.5 (you can check by running python --version in a command prompt) then you would click 'PYTHON=C:\Python35-x64'. Then, click the Artifacts tab and download the corresponding dist\gdspy-1.X.X.X.whl wheel file.
  • Open up a command prompt (type cmd in the search bar), navigate to your downloads, then install via:
pip install dist\gdspy-1.X.X.X.whl
  • Next, install the PICwriter library by following the same procedure as before at the picwriter appveyor page to install the corresponding prebuilt picwriter .whl file.
  • In a command prompt, navigate to your downloads and install with pip:
pip install dist\picwriter-1.X.X.X.whl

Building from source is also possible. For installing gdspy, an appropriate build environment is required for compilation of the C extension modules.

About

Library of easy-to-implement photonic-integrated-circuit (PIC) components for quick GDSII mask layout and design.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

Linux/OS: Build Status Windows: Build status Documentation: Documentation Status

PICwriter README

Picwriter (Photonic-Integrated-Circuit Writer) is a Python module, built above the gdspy module, aimed at simplifying the process of designing complex masks for photonic integrated circuits through a prebuilt library of easy-to-implement PCells (technically all sub-classes of the gdspy Cell class). Supported blocks currently include:

  • waveguides (strip, slot, and sub-wavelength grating)
  • grating couplers (straight and focusing)
  • tapers
  • strip to slot waveguide mode converters
  • directional couplers
  • spiral structures (auto-generated from specified waveguide length)
  • 1x2 multi-mode interferometers
  • 2x2 multi-mode interferometers
  • ring & disk resonators with automatic bus waveguide wrapping
  • distributed bragg reflectors
  • Mach-Zehnder interferometers
  • alignment markers (for photolithography and ebeam lithography)
  • metal routes
  • bond pads

Stay tuned, more components are coming soon! In the meantime, check out the documentation for this project at picwriter.readthedocs.io.

Features

The ultimate goal of this module is to reduce the time required to generate photonic integrated circuit mask designs, by extending the functionality of the gdspy library.

  • High-level specification of common building blocks for photonic-integrated circuits
  • Fabrication specific masks. Specify the photoresist type ('+' or '-') and fabrication type (such as 'ETCH') and PICwriter will generate the appropriate mask files for electron-beam or photolithography.
  • All library components are subclasses of the gdspy Cell class, so gdspy Cell features such as rotation(), copy(), flatten(), get_bounding_box(), etc. are all supported.
  • Unique cell identifiers. Add components to your mask layout without worrying about name-clashes.

Installation

Dependencies:

With a working version of python, all dependencies should be automatically installed through the instructions below.

  • Python (tested with versions 2.7, 3.4, 3.5, 3.6 for Linux/OS, tested with versions 2.7, 3.4, 3.5, 3.6, 2.7-x64, 3.4-x64, 3.5-x64, 3.6-x64 for Windows.)
  • gdspy (tested with versions 2.7, 3.4, 3.5, and 3.6)
  • Numpy
  • UUID
  • SciPy
  • Python-future (only for Python 2)

Linux / OS X

Both options should automatically install all dependencies (like gdspy, numpy, etc.).

Option 1: using pip:

pip install picwriter

Option 2: download the source from github and build/install with:

python setup.py install

Windows

The best way of obtaining the library is by installing the prebuilt binaries.

  • First, go to the gdspy appveyor project page, then click the python environment that matches your python version and processor type. For example, if you have a 64-bit processor with Python version 3.5 (you can check by running python --version in a command prompt) then you would click 'PYTHON=C:\Python35-x64'. Then, click the Artifacts tab and download the corresponding dist\gdspy-1.X.X.X.whl wheel file.
  • Open up a command prompt (type cmd in the search bar), navigate to your downloads, then install via:
pip install dist\gdspy-1.X.X.X.whl
  • Next, install the PICwriter library by following the same procedure as before at the picwriter appveyor page to install the corresponding prebuilt picwriter .whl file.
  • In a command prompt, navigate to your downloads and install with pip:
pip install dist\picwriter-1.X.X.X.whl

Building from source is also possible. For installing gdspy, an appropriate build environment is required for compilation of the C extension modules.

About

Library of easy-to-implement photonic-integrated-circuit (PIC) components for quick GDSII mask layout and design.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Linux/OS: Build Status Windows: Build status Documentation: Documentation Status

PICwriter README

Picwriter (Photonic-Integrated-Circuit Writer) is a Python module, built above the gdspy module, aimed at simplifying the process of designing complex masks for photonic integrated circuits through a prebuilt library of easy-to-implement PCells (technically all sub-classes of the gdspy Cell class). Supported blocks currently include:

  • waveguides (strip, slot, and sub-wavelength grating)
  • grating couplers (straight and focusing)
  • tapers
  • strip to slot waveguide mode converters
  • directional couplers
  • spiral structures (auto-generated from specified waveguide length)
  • 1x2 multi-mode interferometers
  • 2x2 multi-mode interferometers
  • ring & disk resonators with automatic bus waveguide wrapping
  • distributed bragg reflectors
  • Mach-Zehnder interferometers
  • alignment markers (for photolithography and ebeam lithography)
  • metal routes
  • bond pads

Stay tuned, more components are coming soon! In the meantime, check out the documentation for this project at picwriter.readthedocs.io.

Features

The ultimate goal of this module is to reduce the time required to generate photonic integrated circuit mask designs, by extending the functionality of the gdspy library.

  • High-level specification of common building blocks for photonic-integrated circuits
  • Fabrication specific masks. Specify the photoresist type ('+' or '-') and fabrication type (such as 'ETCH') and PICwriter will generate the appropriate mask files for electron-beam or photolithography.
  • All library components are subclasses of the gdspy Cell class, so gdspy Cell features such as rotation(), copy(), flatten(), get_bounding_box(), etc. are all supported.
  • Unique cell identifiers. Add components to your mask layout without worrying about name-clashes.

Installation

Dependencies:

With a working version of python, all dependencies should be automatically installed through the instructions below.

  • Python (tested with versions 2.7, 3.4, 3.5, 3.6 for Linux/OS, tested with versions 2.7, 3.4, 3.5, 3.6, 2.7-x64, 3.4-x64, 3.5-x64, 3.6-x64 for Windows.)
  • gdspy (tested with versions 2.7, 3.4, 3.5, and 3.6)
  • Numpy
  • UUID
  • SciPy
  • Python-future (only for Python 2)

Linux / OS X

Both options should automatically install all dependencies (like gdspy, numpy, etc.).

Option 1: using pip:

pip install picwriter

Option 2: download the source from github and build/install with:

python setup.py install

Windows

The best way of obtaining the library is by installing the prebuilt binaries.

  • First, go to the gdspy appveyor project page, then click the python environment that matches your python version and processor type. For example, if you have a 64-bit processor with Python version 3.5 (you can check by running python --version in a command prompt) then you would click 'PYTHON=C:\Python35-x64'. Then, click the Artifacts tab and download the corresponding dist\gdspy-1.X.X.X.whl wheel file.
  • Open up a command prompt (type cmd in the search bar), navigate to your downloads, then install via:
pip install dist\gdspy-1.X.X.X.whl
  • Next, install the PICwriter library by following the same procedure as before at the picwriter appveyor page to install the corresponding prebuilt picwriter .whl file.
  • In a command prompt, navigate to your downloads and install with pip:
pip install dist\picwriter-1.X.X.X.whl

Building from source is also possible. For installing gdspy, an appropriate build environment is required for compilation of the C extension modules.

About

Library of easy-to-implement photonic-integrated-circuit (PIC) components for quick GDSII mask layout and design.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Linux/OS: Build Status Windows: Build status Documentation: Documentation Status

PICwriter README

Picwriter (Photonic-Integrated-Circuit Writer) is a Python module, built above the gdspy module, aimed at simplifying the process of designing complex masks for photonic integrated circuits through a prebuilt library of easy-to-implement PCells (technically all sub-classes of the gdspy Cell class). Supported blocks currently include:

  • waveguides (strip, slot, and sub-wavelength grating)
  • grating couplers (straight and focusing)
  • tapers
  • strip to slot waveguide mode converters
  • directional couplers
  • spiral structures (auto-generated from specified waveguide length)
  • 1x2 multi-mode interferometers
  • 2x2 multi-mode interferometers
  • ring & disk resonators with automatic bus waveguide wrapping
  • distributed bragg reflectors
  • Mach-Zehnder interferometers
  • alignment markers (for photolithography and ebeam lithography)
  • metal routes
  • bond pads

Stay tuned, more components are coming soon! In the meantime, check out the documentation for this project at picwriter.readthedocs.io.

Features

The ultimate goal of this module is to reduce the time required to generate photonic integrated circuit mask designs, by extending the functionality of the gdspy library.

  • High-level specification of common building blocks for photonic-integrated circuits
  • Fabrication specific masks. Specify the photoresist type ('+' or '-') and fabrication type (such as 'ETCH') and PICwriter will generate the appropriate mask files for electron-beam or photolithography.
  • All library components are subclasses of the gdspy Cell class, so gdspy Cell features such as rotation(), copy(), flatten(), get_bounding_box(), etc. are all supported.
  • Unique cell identifiers. Add components to your mask layout without worrying about name-clashes.

Installation

Dependencies:

With a working version of python, all dependencies should be automatically installed through the instructions below.

  • Python (tested with versions 2.7, 3.4, 3.5, 3.6 for Linux/OS, tested with versions 2.7, 3.4, 3.5, 3.6, 2.7-x64, 3.4-x64, 3.5-x64, 3.6-x64 for Windows.)
  • gdspy (tested with versions 2.7, 3.4, 3.5, and 3.6)
  • Numpy
  • UUID
  • SciPy
  • Python-future (only for Python 2)

Linux / OS X

Both options should automatically install all dependencies (like gdspy, numpy, etc.).

Option 1: using pip:

pip install picwriter

Option 2: download the source from github and build/install with:

python setup.py install

Windows

The best way of obtaining the library is by installing the prebuilt binaries.

  • First, go to the gdspy appveyor project page, then click the python environment that matches your python version and processor type. For example, if you have a 64-bit processor with Python version 3.5 (you can check by running python --version in a command prompt) then you would click 'PYTHON=C:\Python35-x64'. Then, click the Artifacts tab and download the corresponding dist\gdspy-1.X.X.X.whl wheel file.
  • Open up a command prompt (type cmd in the search bar), navigate to your downloads, then install via:
pip install dist\gdspy-1.X.X.X.whl
  • Next, install the PICwriter library by following the same procedure as before at the picwriter appveyor page to install the corresponding prebuilt picwriter .whl file.
  • In a command prompt, navigate to your downloads and install with pip:
pip install dist\picwriter-1.X.X.X.whl

Building from source is also possible. For installing gdspy, an appropriate build environment is required for compilation of the C extension modules.

About

Library of easy-to-implement photonic-integrated-circuit (PIC) components for quick GDSII mask layout and design.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

Linux/OS: Build Status Windows: Build status Documentation: Documentation Status

PICwriter README

Picwriter (Photonic-Integrated-Circuit Writer) is a Python module, built above the gdspy module, aimed at simplifying the process of designing complex masks for photonic integrated circuits through a prebuilt library of easy-to-implement PCells (technically all sub-classes of the gdspy Cell class). Supported blocks currently include:

  • waveguides (strip, slot, and sub-wavelength grating)
  • grating couplers (straight and focusing)
  • tapers
  • strip to slot waveguide mode converters
  • directional couplers
  • spiral structures (auto-generated from specified waveguide length)
  • 1x2 multi-mode interferometers
  • 2x2 multi-mode interferometers
  • ring & disk resonators with automatic bus waveguide wrapping
  • distributed bragg reflectors
  • Mach-Zehnder interferometers
  • alignment markers (for photolithography and ebeam lithography)
  • metal routes
  • bond pads

Stay tuned, more components are coming soon! In the meantime, check out the documentation for this project at picwriter.readthedocs.io.

Features

The ultimate goal of this module is to reduce the time required to generate photonic integrated circuit mask designs, by extending the functionality of the gdspy library.

  • High-level specification of common building blocks for photonic-integrated circuits
  • Fabrication specific masks. Specify the photoresist type ('+' or '-') and fabrication type (such as 'ETCH') and PICwriter will generate the appropriate mask files for electron-beam or photolithography.
  • All library components are subclasses of the gdspy Cell class, so gdspy Cell features such as rotation(), copy(), flatten(), get_bounding_box(), etc. are all supported.
  • Unique cell identifiers. Add components to your mask layout without worrying about name-clashes.

Installation

Dependencies:

With a working version of python, all dependencies should be automatically installed through the instructions below.

  • Python (tested with versions 2.7, 3.4, 3.5, 3.6 for Linux/OS, tested with versions 2.7, 3.4, 3.5, 3.6, 2.7-x64, 3.4-x64, 3.5-x64, 3.6-x64 for Windows.)
  • gdspy (tested with versions 2.7, 3.4, 3.5, and 3.6)
  • Numpy
  • UUID
  • SciPy
  • Python-future (only for Python 2)

Linux / OS X

Both options should automatically install all dependencies (like gdspy, numpy, etc.).

Option 1: using pip:

pip install picwriter

Option 2: download the source from github and build/install with:

python setup.py install

Windows

The best way of obtaining the library is by installing the prebuilt binaries.

  • First, go to the gdspy appveyor project page, then click the python environment that matches your python version and processor type. For example, if you have a 64-bit processor with Python version 3.5 (you can check by running python --version in a command prompt) then you would click 'PYTHON=C:\Python35-x64'. Then, click the Artifacts tab and download the corresponding dist\gdspy-1.X.X.X.whl wheel file.
  • Open up a command prompt (type cmd in the search bar), navigate to your downloads, then install via:
pip install dist\gdspy-1.X.X.X.whl
  • Next, install the PICwriter library by following the same procedure as before at the picwriter appveyor page to install the corresponding prebuilt picwriter .whl file.
  • In a command prompt, navigate to your downloads and install with pip:
pip install dist\picwriter-1.X.X.X.whl

Building from source is also possible. For installing gdspy, an appropriate build environment is required for compilation of the C extension modules.

About

Library of easy-to-implement photonic-integrated-circuit (PIC) components for quick GDSII mask layout and design.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Linux/OS: Build Status Windows: Build status Documentation: Documentation Status

PICwriter README

Picwriter (Photonic-Integrated-Circuit Writer) is a Python module, built above the gdspy module, aimed at simplifying the process of designing complex masks for photonic integrated circuits through a prebuilt library of easy-to-implement PCells (technically all sub-classes of the gdspy Cell class). Supported blocks currently include:

  • waveguides (strip, slot, and sub-wavelength grating)
  • grating couplers (straight and focusing)
  • tapers
  • strip to slot waveguide mode converters
  • directional couplers
  • spiral structures (auto-generated from specified waveguide length)
  • 1x2 multi-mode interferometers
  • 2x2 multi-mode interferometers
  • ring & disk resonators with automatic bus waveguide wrapping
  • distributed bragg reflectors
  • Mach-Zehnder interferometers
  • alignment markers (for photolithography and ebeam lithography)
  • metal routes
  • bond pads

Stay tuned, more components are coming soon! In the meantime, check out the documentation for this project at picwriter.readthedocs.io.

Features

The ultimate goal of this module is to reduce the time required to generate photonic integrated circuit mask designs, by extending the functionality of the gdspy library.

  • High-level specification of common building blocks for photonic-integrated circuits
  • Fabrication specific masks. Specify the photoresist type ('+' or '-') and fabrication type (such as 'ETCH') and PICwriter will generate the appropriate mask files for electron-beam or photolithography.
  • All library components are subclasses of the gdspy Cell class, so gdspy Cell features such as rotation(), copy(), flatten(), get_bounding_box(), etc. are all supported.
  • Unique cell identifiers. Add components to your mask layout without worrying about name-clashes.

Installation

Dependencies:

With a working version of python, all dependencies should be automatically installed through the instructions below.

  • Python (tested with versions 2.7, 3.4, 3.5, 3.6 for Linux/OS, tested with versions 2.7, 3.4, 3.5, 3.6, 2.7-x64, 3.4-x64, 3.5-x64, 3.6-x64 for Windows.)
  • gdspy (tested with versions 2.7, 3.4, 3.5, and 3.6)
  • Numpy
  • UUID
  • SciPy
  • Python-future (only for Python 2)

Linux / OS X

Both options should automatically install all dependencies (like gdspy, numpy, etc.).

Option 1: using pip:

pip install picwriter

Option 2: download the source from github and build/install with:

python setup.py install

Windows

The best way of obtaining the library is by installing the prebuilt binaries.

  • First, go to the gdspy appveyor project page, then click the python environment that matches your python version and processor type. For example, if you have a 64-bit processor with Python version 3.5 (you can check by running python --version in a command prompt) then you would click 'PYTHON=C:\Python35-x64'. Then, click the Artifacts tab and download the corresponding dist\gdspy-1.X.X.X.whl wheel file.
  • Open up a command prompt (type cmd in the search bar), navigate to your downloads, then install via:
pip install dist\gdspy-1.X.X.X.whl
  • Next, install the PICwriter library by following the same procedure as before at the picwriter appveyor page to install the corresponding prebuilt picwriter .whl file.
  • In a command prompt, navigate to your downloads and install with pip:
pip install dist\picwriter-1.X.X.X.whl

Building from source is also possible. For installing gdspy, an appropriate build environment is required for compilation of the C extension modules.

About

Library of easy-to-implement photonic-integrated-circuit (PIC) components for quick GDSII mask layout and design.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Linux/OS: Build Status Windows: Build status Documentation: Documentation Status

PICwriter README

Picwriter (Photonic-Integrated-Circuit Writer) is a Python module, built above the gdspy module, aimed at simplifying the process of designing complex masks for photonic integrated circuits through a prebuilt library of easy-to-implement PCells (technically all sub-classes of the gdspy Cell class). Supported blocks currently include:

  • waveguides (strip, slot, and sub-wavelength grating)
  • grating couplers (straight and focusing)
  • tapers
  • strip to slot waveguide mode converters
  • directional couplers
  • spiral structures (auto-generated from specified waveguide length)
  • 1x2 multi-mode interferometers
  • 2x2 multi-mode interferometers
  • ring & disk resonators with automatic bus waveguide wrapping
  • distributed bragg reflectors
  • Mach-Zehnder interferometers
  • alignment markers (for photolithography and ebeam lithography)
  • metal routes
  • bond pads

Stay tuned, more components are coming soon! In the meantime, check out the documentation for this project at picwriter.readthedocs.io.

Features

The ultimate goal of this module is to reduce the time required to generate photonic integrated circuit mask designs, by extending the functionality of the gdspy library.

  • High-level specification of common building blocks for photonic-integrated circuits
  • Fabrication specific masks. Specify the photoresist type ('+' or '-') and fabrication type (such as 'ETCH') and PICwriter will generate the appropriate mask files for electron-beam or photolithography.
  • All library components are subclasses of the gdspy Cell class, so gdspy Cell features such as rotation(), copy(), flatten(), get_bounding_box(), etc. are all supported.
  • Unique cell identifiers. Add components to your mask layout without worrying about name-clashes.

Installation

Dependencies:

With a working version of python, all dependencies should be automatically installed through the instructions below.

  • Python (tested with versions 2.7, 3.4, 3.5, 3.6 for Linux/OS, tested with versions 2.7, 3.4, 3.5, 3.6, 2.7-x64, 3.4-x64, 3.5-x64, 3.6-x64 for Windows.)
  • gdspy (tested with versions 2.7, 3.4, 3.5, and 3.6)
  • Numpy
  • UUID
  • SciPy
  • Python-future (only for Python 2)

Linux / OS X

Both options should automatically install all dependencies (like gdspy, numpy, etc.).

Option 1: using pip:

pip install picwriter

Option 2: download the source from github and build/install with:

python setup.py install

Windows

The best way of obtaining the library is by installing the prebuilt binaries.

  • First, go to the gdspy appveyor project page, then click the python environment that matches your python version and processor type. For example, if you have a 64-bit processor with Python version 3.5 (you can check by running python --version in a command prompt) then you would click 'PYTHON=C:\Python35-x64'. Then, click the Artifacts tab and download the corresponding dist\gdspy-1.X.X.X.whl wheel file.
  • Open up a command prompt (type cmd in the search bar), navigate to your downloads, then install via:
pip install dist\gdspy-1.X.X.X.whl
  • Next, install the PICwriter library by following the same procedure as before at the picwriter appveyor page to install the corresponding prebuilt picwriter .whl file.
  • In a command prompt, navigate to your downloads and install with pip:
pip install dist\picwriter-1.X.X.X.whl

Building from source is also possible. For installing gdspy, an appropriate build environment is required for compilation of the C extension modules.

About

Library of easy-to-implement photonic-integrated-circuit (PIC) components for quick GDSII mask layout and design.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

Linux/OS: Build Status Windows: Build status Documentation: Documentation Status

PICwriter README

Picwriter (Photonic-Integrated-Circuit Writer) is a Python module, built above the gdspy module, aimed at simplifying the process of designing complex masks for photonic integrated circuits through a prebuilt library of easy-to-implement PCells (technically all sub-classes of the gdspy Cell class). Supported blocks currently include:

  • waveguides (strip, slot, and sub-wavelength grating)
  • grating couplers (straight and focusing)
  • tapers
  • strip to slot waveguide mode converters
  • directional couplers
  • spiral structures (auto-generated from specified waveguide length)
  • 1x2 multi-mode interferometers
  • 2x2 multi-mode interferometers
  • ring & disk resonators with automatic bus waveguide wrapping
  • distributed bragg reflectors
  • Mach-Zehnder interferometers
  • alignment markers (for photolithography and ebeam lithography)
  • metal routes
  • bond pads

Stay tuned, more components are coming soon! In the meantime, check out the documentation for this project at picwriter.readthedocs.io.

Features

The ultimate goal of this module is to reduce the time required to generate photonic integrated circuit mask designs, by extending the functionality of the gdspy library.

  • High-level specification of common building blocks for photonic-integrated circuits
  • Fabrication specific masks. Specify the photoresist type ('+' or '-') and fabrication type (such as 'ETCH') and PICwriter will generate the appropriate mask files for electron-beam or photolithography.
  • All library components are subclasses of the gdspy Cell class, so gdspy Cell features such as rotation(), copy(), flatten(), get_bounding_box(), etc. are all supported.
  • Unique cell identifiers. Add components to your mask layout without worrying about name-clashes.

Installation

Dependencies:

With a working version of python, all dependencies should be automatically installed through the instructions below.

  • Python (tested with versions 2.7, 3.4, 3.5, 3.6 for Linux/OS, tested with versions 2.7, 3.4, 3.5, 3.6, 2.7-x64, 3.4-x64, 3.5-x64, 3.6-x64 for Windows.)
  • gdspy (tested with versions 2.7, 3.4, 3.5, and 3.6)
  • Numpy
  • UUID
  • SciPy
  • Python-future (only for Python 2)

Linux / OS X

Both options should automatically install all dependencies (like gdspy, numpy, etc.).

Option 1: using pip:

pip install picwriter

Option 2: download the source from github and build/install with:

python setup.py install

Windows

The best way of obtaining the library is by installing the prebuilt binaries.

  • First, go to the gdspy appveyor project page, then click the python environment that matches your python version and processor type. For example, if you have a 64-bit processor with Python version 3.5 (you can check by running python --version in a command prompt) then you would click 'PYTHON=C:\Python35-x64'. Then, click the Artifacts tab and download the corresponding dist\gdspy-1.X.X.X.whl wheel file.
  • Open up a command prompt (type cmd in the search bar), navigate to your downloads, then install via:
pip install dist\gdspy-1.X.X.X.whl
  • Next, install the PICwriter library by following the same procedure as before at the picwriter appveyor page to install the corresponding prebuilt picwriter .whl file.
  • In a command prompt, navigate to your downloads and install with pip:
pip install dist\picwriter-1.X.X.X.whl

Building from source is also possible. For installing gdspy, an appropriate build environment is required for compilation of the C extension modules.

About

Library of easy-to-implement photonic-integrated-circuit (PIC) components for quick GDSII mask layout and design.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages