Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
b2276c0
Renaming package to stochas
Hydrowelder Apr 4, 2026
7008556
Update readme
Hydrowelder Apr 4, 2026
a4b159a
Update license
Hydrowelder Apr 4, 2026
6f2ea01
Update readme link
Hydrowelder Apr 4, 2026
1a1a2af
Updated project urls
Hydrowelder Apr 4, 2026
668c827
Branding update
Hydrowelder Apr 4, 2026
9b04bed
Bump version
Hydrowelder Apr 4, 2026
455a8b4
Added auto release to workflow
Hydrowelder Apr 4, 2026
eda3fa1
Update workflow
Hydrowelder Apr 4, 2026
380ae75
Only run act-test on changes to source code
Hydrowelder Apr 4, 2026
6ac7c97
Skip uv publish if the version is already out there
Hydrowelder Apr 4, 2026
ff217b2
Update workflow
Hydrowelder Apr 4, 2026
98ee254
Bump version
Hydrowelder Apr 4, 2026
b168505
Bump version
Hydrowelder Apr 6, 2026
034193c
Added support for python 3.14
Hydrowelder Apr 17, 2026
74aee4a
Bump version
Hydrowelder Apr 17, 2026
c2605ce
Fix to use main instead of master
Hydrowelder Apr 17, 2026
0d2ea34
Update badge link to use 'main' branch
Hydrowelder Apr 18, 2026
dfb9716
Switching to use a sentinel value instead of overloading the NamedVal…
Hydrowelder Apr 18, 2026
7f514ab
Fixes to named value serialization with generic types
Hydrowelder Apr 19, 2026
776c249
Merge branch 'main' of https://github.com/Hydrowelder/stochas
Hydrowelder Apr 19, 2026
fcf1a95
Inherited from MuJoCo Mojo
Hydrowelder Apr 21, 2026
2ef4eb7
Added more optimization functionality
Hydrowelder Apr 21, 2026
a0fec13
Updated logo
Hydrowelder Apr 24, 2026
93e1273
Update CSS and logo
Hydrowelder Apr 24, 2026
f4d38dc
Added logo to readme
Hydrowelder Apr 24, 2026
14da87c
Added abstracts for user guides
Hydrowelder Apr 25, 2026
13d0f7f
Replace UL list characters
Hydrowelder May 2, 2026
2fa8fe2
Bump version
Hydrowelder May 2, 2026
04c7ea2
Fixes for multiprocessing
Hydrowelder May 7, 2026
4873db6
Fix badges
Hydrowelder May 11, 2026
8d60fce
Fixed the sample_dist bug where repeated calls would crash the code r…
Hydrowelder May 28, 2026
abd48d6
Added rayleigh distribution and validations for design variables
Hydrowelder Jun 13, 2026
b491c50
Updated figures to sweep different distributions
Hydrowelder Jun 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
119 changes: 0 additions & 119 deletions .github/workflows/publish.yml

This file was deleted.

80 changes: 80 additions & 0 deletions .github/workflows/workflow.yml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
name: "Publish"

on:
push:
branches: ["main"] # Run tests on every push to main
tags: ["v*"] # Run tests AND publish on tags
pull_request:
branches: ["main"] # Run tests on PRs

jobs:
test:
name: "Test (Python ${{ matrix.python-version }})"
runs-on: ubuntu-latest
strategy:
matrix:
# Parallelize tests across your supported versions
python-version: ["3.12", "3.13", "3.14"]

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Install uv
uses: astral-sh/setup-uv@v5
with:
enable-cache: true

- name: Install Python ${{ matrix.python-version }}
run: uv python install ${{ matrix.python-version }}

- name: Run unit tests
# Explicitly tells uv which python version to use for the test environment
run: uv run --python ${{ matrix.python-version }} --group dev pytest
publish:
name: "Build and Publish"
needs: [test]
# ONLY run this job if the push was actually a tag
if: startsWith(github.ref, 'refs/tags/v')
runs-on: ubuntu-latest
environment:
name: pypi
permissions:
id-token: write # Required for PyPI Trusted Publishing
contents: write # Required to create GitHub Release and upload assets
steps:
- name: Checkout
uses: actions/checkout@v6
with:
# Fetch all history so we can see other branches
fetch-depth: 0

- name: Verify Tag is on Main
# Only perform this check if we were triggered by a tag
if: startsWith(github.ref, 'refs/tags/v')
run: |
# Check if 'main' branch contains the current commit
if ! git branch -r --contains ${{ github.sha }} | grep -q "origin/main"; then
echo "::error::Tag ${{ github.ref_name }} was pushed on a non-main branch. Skipping workflow."
exit 1
fi

- name: Install uv
uses: astral-sh/setup-uv@v7

- name: Install Python 3.13
run: uv python install 3.13

- name: Build
run: uv build

- name: Publish to PyPI
run: uv publish --check-url https://pypi.org/simple

- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with:
generate_release_notes: true
files: |
dist/*.whl
dist/*.tar.gz
9 changes: 9 additions & 0 deletions .pre-commit-config.yaml
Original file line numberDiff line numberDiff line change
Expand Up@@ -27,3 +27,12 @@ repos:
rev: v1.1.408
hooks:
- id: pyright
- repo: local
hooks:
- id: act-test
name: Run GitHub Actions locally (act)
entry: act -j test
language: system
stages: [pre-push]
pass_filenames: false
files: ^(src/|tests/|pyproject\.toml|uv\.lock)
Loading
Loading
, '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
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
b2276c0
Renaming package to stochas
Hydrowelder Apr 4, 2026
7008556
Update readme
Hydrowelder Apr 4, 2026
a4b159a
Update license
Hydrowelder Apr 4, 2026
6f2ea01
Update readme link
Hydrowelder Apr 4, 2026
1a1a2af
Updated project urls
Hydrowelder Apr 4, 2026
668c827
Branding update
Hydrowelder Apr 4, 2026
9b04bed
Bump version
Hydrowelder Apr 4, 2026
455a8b4
Added auto release to workflow
Hydrowelder Apr 4, 2026
eda3fa1
Update workflow
Hydrowelder Apr 4, 2026
380ae75
Only run act-test on changes to source code
Hydrowelder Apr 4, 2026
6ac7c97
Skip uv publish if the version is already out there
Hydrowelder Apr 4, 2026
ff217b2
Update workflow
Hydrowelder Apr 4, 2026
98ee254
Bump version
Hydrowelder Apr 4, 2026
b168505
Bump version
Hydrowelder Apr 6, 2026
034193c
Added support for python 3.14
Hydrowelder Apr 17, 2026
74aee4a
Bump version
Hydrowelder Apr 17, 2026
c2605ce
Fix to use main instead of master
Hydrowelder Apr 17, 2026
0d2ea34
Update badge link to use 'main' branch
Hydrowelder Apr 18, 2026
dfb9716
Switching to use a sentinel value instead of overloading the NamedVal…
Hydrowelder Apr 18, 2026
7f514ab
Fixes to named value serialization with generic types
Hydrowelder Apr 19, 2026
776c249
Merge branch 'main' of https://github.com/Hydrowelder/stochas
Hydrowelder Apr 19, 2026
fcf1a95
Inherited from MuJoCo Mojo
Hydrowelder Apr 21, 2026
2ef4eb7
Added more optimization functionality
Hydrowelder Apr 21, 2026
a0fec13
Updated logo
Hydrowelder Apr 24, 2026
93e1273
Update CSS and logo
Hydrowelder Apr 24, 2026
f4d38dc
Added logo to readme
Hydrowelder Apr 24, 2026
14da87c
Added abstracts for user guides
Hydrowelder Apr 25, 2026
13d0f7f
Replace UL list characters
Hydrowelder May 2, 2026
2fa8fe2
Bump version
Hydrowelder May 2, 2026
04c7ea2
Fixes for multiprocessing
Hydrowelder May 7, 2026
4873db6
Fix badges
Hydrowelder May 11, 2026
8d60fce
Fixed the sample_dist bug where repeated calls would crash the code r…
Hydrowelder May 28, 2026
abd48d6
Added rayleigh distribution and validations for design variables
Hydrowelder Jun 13, 2026
b491c50
Updated figures to sweep different distributions
Hydrowelder Jun 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
119 changes: 0 additions & 119 deletions .github/workflows/publish.yml

This file was deleted.

80 changes: 80 additions & 0 deletions .github/workflows/workflow.yml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
name: "Publish"

on:
push:
branches: ["main"] # Run tests on every push to main
tags: ["v*"] # Run tests AND publish on tags
pull_request:
branches: ["main"] # Run tests on PRs

jobs:
test:
name: "Test (Python ${{ matrix.python-version }})"
runs-on: ubuntu-latest
strategy:
matrix:
# Parallelize tests across your supported versions
python-version: ["3.12", "3.13", "3.14"]

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Install uv
uses: astral-sh/setup-uv@v5
with:
enable-cache: true

- name: Install Python ${{ matrix.python-version }}
run: uv python install ${{ matrix.python-version }}

- name: Run unit tests
# Explicitly tells uv which python version to use for the test environment
run: uv run --python ${{ matrix.python-version }} --group dev pytest
publish:
name: "Build and Publish"
needs: [test]
# ONLY run this job if the push was actually a tag
if: startsWith(github.ref, 'refs/tags/v')
runs-on: ubuntu-latest
environment:
name: pypi
permissions:
id-token: write # Required for PyPI Trusted Publishing
contents: write # Required to create GitHub Release and upload assets
steps:
- name: Checkout
uses: actions/checkout@v6
with:
# Fetch all history so we can see other branches
fetch-depth: 0

- name: Verify Tag is on Main
# Only perform this check if we were triggered by a tag
if: startsWith(github.ref, 'refs/tags/v')
run: |
# Check if 'main' branch contains the current commit
if ! git branch -r --contains ${{ github.sha }} | grep -q "origin/main"; then
echo "::error::Tag ${{ github.ref_name }} was pushed on a non-main branch. Skipping workflow."
exit 1
fi

- name: Install uv
uses: astral-sh/setup-uv@v7

- name: Install Python 3.13
run: uv python install 3.13

- name: Build
run: uv build

- name: Publish to PyPI
run: uv publish --check-url https://pypi.org/simple

- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with:
generate_release_notes: true
files: |
dist/*.whl
dist/*.tar.gz
9 changes: 9 additions & 0 deletions .pre-commit-config.yaml
Original file line numberDiff line numberDiff line change
Expand Up@@ -27,3 +27,12 @@ repos:
rev: v1.1.408
hooks:
- id: pyright
- repo: local
hooks:
- id: act-test
name: Run GitHub Actions locally (act)
entry: act -j test
language: system
stages: [pre-push]
pass_filenames: false
files: ^(src/|tests/|pyproject\.toml|uv\.lock)
Loading
Loading
, '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
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
b2276c0
Renaming package to stochas
Hydrowelder Apr 4, 2026
7008556
Update readme
Hydrowelder Apr 4, 2026
a4b159a
Update license
Hydrowelder Apr 4, 2026
6f2ea01
Update readme link
Hydrowelder Apr 4, 2026
1a1a2af
Updated project urls
Hydrowelder Apr 4, 2026
668c827
Branding update
Hydrowelder Apr 4, 2026
9b04bed
Bump version
Hydrowelder Apr 4, 2026
455a8b4
Added auto release to workflow
Hydrowelder Apr 4, 2026
eda3fa1
Update workflow
Hydrowelder Apr 4, 2026
380ae75
Only run act-test on changes to source code
Hydrowelder Apr 4, 2026
6ac7c97
Skip uv publish if the version is already out there
Hydrowelder Apr 4, 2026
ff217b2
Update workflow
Hydrowelder Apr 4, 2026
98ee254
Bump version
Hydrowelder Apr 4, 2026
b168505
Bump version
Hydrowelder Apr 6, 2026
034193c
Added support for python 3.14
Hydrowelder Apr 17, 2026
74aee4a
Bump version
Hydrowelder Apr 17, 2026
c2605ce
Fix to use main instead of master
Hydrowelder Apr 17, 2026
0d2ea34
Update badge link to use 'main' branch
Hydrowelder Apr 18, 2026
dfb9716
Switching to use a sentinel value instead of overloading the NamedVal…
Hydrowelder Apr 18, 2026
7f514ab
Fixes to named value serialization with generic types
Hydrowelder Apr 19, 2026
776c249
Merge branch 'main' of https://github.com/Hydrowelder/stochas
Hydrowelder Apr 19, 2026
fcf1a95
Inherited from MuJoCo Mojo
Hydrowelder Apr 21, 2026
2ef4eb7
Added more optimization functionality
Hydrowelder Apr 21, 2026
a0fec13
Updated logo
Hydrowelder Apr 24, 2026
93e1273
Update CSS and logo
Hydrowelder Apr 24, 2026
f4d38dc
Added logo to readme
Hydrowelder Apr 24, 2026
14da87c
Added abstracts for user guides
Hydrowelder Apr 25, 2026
13d0f7f
Replace UL list characters
Hydrowelder May 2, 2026
2fa8fe2
Bump version
Hydrowelder May 2, 2026
04c7ea2
Fixes for multiprocessing
Hydrowelder May 7, 2026
4873db6
Fix badges
Hydrowelder May 11, 2026
8d60fce
Fixed the sample_dist bug where repeated calls would crash the code r…
Hydrowelder May 28, 2026
abd48d6
Added rayleigh distribution and validations for design variables
Hydrowelder Jun 13, 2026
b491c50
Updated figures to sweep different distributions
Hydrowelder Jun 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
119 changes: 0 additions & 119 deletions .github/workflows/publish.yml

This file was deleted.

80 changes: 80 additions & 0 deletions .github/workflows/workflow.yml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
name: "Publish"

on:
push:
branches: ["main"] # Run tests on every push to main
tags: ["v*"] # Run tests AND publish on tags
pull_request:
branches: ["main"] # Run tests on PRs

jobs:
test:
name: "Test (Python ${{ matrix.python-version }})"
runs-on: ubuntu-latest
strategy:
matrix:
# Parallelize tests across your supported versions
python-version: ["3.12", "3.13", "3.14"]

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Install uv
uses: astral-sh/setup-uv@v5
with:
enable-cache: true

- name: Install Python ${{ matrix.python-version }}
run: uv python install ${{ matrix.python-version }}

- name: Run unit tests
# Explicitly tells uv which python version to use for the test environment
run: uv run --python ${{ matrix.python-version }} --group dev pytest
publish:
name: "Build and Publish"
needs: [test]
# ONLY run this job if the push was actually a tag
if: startsWith(github.ref, 'refs/tags/v')
runs-on: ubuntu-latest
environment:
name: pypi
permissions:
id-token: write # Required for PyPI Trusted Publishing
contents: write # Required to create GitHub Release and upload assets
steps:
- name: Checkout
uses: actions/checkout@v6
with:
# Fetch all history so we can see other branches
fetch-depth: 0

- name: Verify Tag is on Main
# Only perform this check if we were triggered by a tag
if: startsWith(github.ref, 'refs/tags/v')
run: |
# Check if 'main' branch contains the current commit
if ! git branch -r --contains ${{ github.sha }} | grep -q "origin/main"; then
echo "::error::Tag ${{ github.ref_name }} was pushed on a non-main branch. Skipping workflow."
exit 1
fi

- name: Install uv
uses: astral-sh/setup-uv@v7

- name: Install Python 3.13
run: uv python install 3.13

- name: Build
run: uv build

- name: Publish to PyPI
run: uv publish --check-url https://pypi.org/simple

- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with:
generate_release_notes: true
files: |
dist/*.whl
dist/*.tar.gz
9 changes: 9 additions & 0 deletions .pre-commit-config.yaml
Original file line numberDiff line numberDiff line change
Expand Up@@ -27,3 +27,12 @@ repos:
rev: v1.1.408
hooks:
- id: pyright
- repo: local
hooks:
- id: act-test
name: Run GitHub Actions locally (act)
entry: act -j test
language: system
stages: [pre-push]
pass_filenames: false
files: ^(src/|tests/|pyproject\.toml|uv\.lock)
Loading
Loading
, '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
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
b2276c0
Renaming package to stochas
Hydrowelder Apr 4, 2026
7008556
Update readme
Hydrowelder Apr 4, 2026
a4b159a
Update license
Hydrowelder Apr 4, 2026
6f2ea01
Update readme link
Hydrowelder Apr 4, 2026
1a1a2af
Updated project urls
Hydrowelder Apr 4, 2026
668c827
Branding update
Hydrowelder Apr 4, 2026
9b04bed
Bump version
Hydrowelder Apr 4, 2026
455a8b4
Added auto release to workflow
Hydrowelder Apr 4, 2026
eda3fa1
Update workflow
Hydrowelder Apr 4, 2026
380ae75
Only run act-test on changes to source code
Hydrowelder Apr 4, 2026
6ac7c97
Skip uv publish if the version is already out there
Hydrowelder Apr 4, 2026
ff217b2
Update workflow
Hydrowelder Apr 4, 2026
98ee254
Bump version
Hydrowelder Apr 4, 2026
b168505
Bump version
Hydrowelder Apr 6, 2026
034193c
Added support for python 3.14
Hydrowelder Apr 17, 2026
74aee4a
Bump version
Hydrowelder Apr 17, 2026
c2605ce
Fix to use main instead of master
Hydrowelder Apr 17, 2026
0d2ea34
Update badge link to use 'main' branch
Hydrowelder Apr 18, 2026
dfb9716
Switching to use a sentinel value instead of overloading the NamedVal…
Hydrowelder Apr 18, 2026
7f514ab
Fixes to named value serialization with generic types
Hydrowelder Apr 19, 2026
776c249
Merge branch 'main' of https://github.com/Hydrowelder/stochas
Hydrowelder Apr 19, 2026
fcf1a95
Inherited from MuJoCo Mojo
Hydrowelder Apr 21, 2026
2ef4eb7
Added more optimization functionality
Hydrowelder Apr 21, 2026
a0fec13
Updated logo
Hydrowelder Apr 24, 2026
93e1273
Update CSS and logo
Hydrowelder Apr 24, 2026
f4d38dc
Added logo to readme
Hydrowelder Apr 24, 2026
14da87c
Added abstracts for user guides
Hydrowelder Apr 25, 2026
13d0f7f
Replace UL list characters
Hydrowelder May 2, 2026
2fa8fe2
Bump version
Hydrowelder May 2, 2026
04c7ea2
Fixes for multiprocessing
Hydrowelder May 7, 2026
4873db6
Fix badges
Hydrowelder May 11, 2026
8d60fce
Fixed the sample_dist bug where repeated calls would crash the code r…
Hydrowelder May 28, 2026
abd48d6
Added rayleigh distribution and validations for design variables
Hydrowelder Jun 13, 2026
b491c50
Updated figures to sweep different distributions
Hydrowelder Jun 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
119 changes: 0 additions & 119 deletions .github/workflows/publish.yml

This file was deleted.

80 changes: 80 additions & 0 deletions .github/workflows/workflow.yml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
name: "Publish"

on:
push:
branches: ["main"] # Run tests on every push to main
tags: ["v*"] # Run tests AND publish on tags
pull_request:
branches: ["main"] # Run tests on PRs

jobs:
test:
name: "Test (Python ${{ matrix.python-version }})"
runs-on: ubuntu-latest
strategy:
matrix:
# Parallelize tests across your supported versions
python-version: ["3.12", "3.13", "3.14"]

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Install uv
uses: astral-sh/setup-uv@v5
with:
enable-cache: true

- name: Install Python ${{ matrix.python-version }}
run: uv python install ${{ matrix.python-version }}

- name: Run unit tests
# Explicitly tells uv which python version to use for the test environment
run: uv run --python ${{ matrix.python-version }} --group dev pytest
publish:
name: "Build and Publish"
needs: [test]
# ONLY run this job if the push was actually a tag
if: startsWith(github.ref, 'refs/tags/v')
runs-on: ubuntu-latest
environment:
name: pypi
permissions:
id-token: write # Required for PyPI Trusted Publishing
contents: write # Required to create GitHub Release and upload assets
steps:
- name: Checkout
uses: actions/checkout@v6
with:
# Fetch all history so we can see other branches
fetch-depth: 0

- name: Verify Tag is on Main
# Only perform this check if we were triggered by a tag
if: startsWith(github.ref, 'refs/tags/v')
run: |
# Check if 'main' branch contains the current commit
if ! git branch -r --contains ${{ github.sha }} | grep -q "origin/main"; then
echo "::error::Tag ${{ github.ref_name }} was pushed on a non-main branch. Skipping workflow."
exit 1
fi

- name: Install uv
uses: astral-sh/setup-uv@v7

- name: Install Python 3.13
run: uv python install 3.13

- name: Build
run: uv build

- name: Publish to PyPI
run: uv publish --check-url https://pypi.org/simple

- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with:
generate_release_notes: true
files: |
dist/*.whl
dist/*.tar.gz
9 changes: 9 additions & 0 deletions .pre-commit-config.yaml
Original file line numberDiff line numberDiff line change
Expand Up@@ -27,3 +27,12 @@ repos:
rev: v1.1.408
hooks:
- id: pyright
- repo: local
hooks:
- id: act-test
name: Run GitHub Actions locally (act)
entry: act -j test
language: system
stages: [pre-push]
pass_filenames: false
files: ^(src/|tests/|pyproject\.toml|uv\.lock)
Loading
Loading
, '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
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
b2276c0
Renaming package to stochas
Hydrowelder Apr 4, 2026
7008556
Update readme
Hydrowelder Apr 4, 2026
a4b159a
Update license
Hydrowelder Apr 4, 2026
6f2ea01
Update readme link
Hydrowelder Apr 4, 2026
1a1a2af
Updated project urls
Hydrowelder Apr 4, 2026
668c827
Branding update
Hydrowelder Apr 4, 2026
9b04bed
Bump version
Hydrowelder Apr 4, 2026
455a8b4
Added auto release to workflow
Hydrowelder Apr 4, 2026
eda3fa1
Update workflow
Hydrowelder Apr 4, 2026
380ae75
Only run act-test on changes to source code
Hydrowelder Apr 4, 2026
6ac7c97
Skip uv publish if the version is already out there
Hydrowelder Apr 4, 2026
ff217b2
Update workflow
Hydrowelder Apr 4, 2026
98ee254
Bump version
Hydrowelder Apr 4, 2026
b168505
Bump version
Hydrowelder Apr 6, 2026
034193c
Added support for python 3.14
Hydrowelder Apr 17, 2026
74aee4a
Bump version
Hydrowelder Apr 17, 2026
c2605ce
Fix to use main instead of master
Hydrowelder Apr 17, 2026
0d2ea34
Update badge link to use 'main' branch
Hydrowelder Apr 18, 2026
dfb9716
Switching to use a sentinel value instead of overloading the NamedVal…
Hydrowelder Apr 18, 2026
7f514ab
Fixes to named value serialization with generic types
Hydrowelder Apr 19, 2026
776c249
Merge branch 'main' of https://github.com/Hydrowelder/stochas
Hydrowelder Apr 19, 2026
fcf1a95
Inherited from MuJoCo Mojo
Hydrowelder Apr 21, 2026
2ef4eb7
Added more optimization functionality
Hydrowelder Apr 21, 2026
a0fec13
Updated logo
Hydrowelder Apr 24, 2026
93e1273
Update CSS and logo
Hydrowelder Apr 24, 2026
f4d38dc
Added logo to readme
Hydrowelder Apr 24, 2026
14da87c
Added abstracts for user guides
Hydrowelder Apr 25, 2026
13d0f7f
Replace UL list characters
Hydrowelder May 2, 2026
2fa8fe2
Bump version
Hydrowelder May 2, 2026
04c7ea2
Fixes for multiprocessing
Hydrowelder May 7, 2026
4873db6
Fix badges
Hydrowelder May 11, 2026
8d60fce
Fixed the sample_dist bug where repeated calls would crash the code r…
Hydrowelder May 28, 2026
abd48d6
Added rayleigh distribution and validations for design variables
Hydrowelder Jun 13, 2026
b491c50
Updated figures to sweep different distributions
Hydrowelder Jun 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
119 changes: 0 additions & 119 deletions .github/workflows/publish.yml

This file was deleted.

80 changes: 80 additions & 0 deletions .github/workflows/workflow.yml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
name: "Publish"

on:
push:
branches: ["main"] # Run tests on every push to main
tags: ["v*"] # Run tests AND publish on tags
pull_request:
branches: ["main"] # Run tests on PRs

jobs:
test:
name: "Test (Python ${{ matrix.python-version }})"
runs-on: ubuntu-latest
strategy:
matrix:
# Parallelize tests across your supported versions
python-version: ["3.12", "3.13", "3.14"]

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Install uv
uses: astral-sh/setup-uv@v5
with:
enable-cache: true

- name: Install Python ${{ matrix.python-version }}
run: uv python install ${{ matrix.python-version }}

- name: Run unit tests
# Explicitly tells uv which python version to use for the test environment
run: uv run --python ${{ matrix.python-version }} --group dev pytest
publish:
name: "Build and Publish"
needs: [test]
# ONLY run this job if the push was actually a tag
if: startsWith(github.ref, 'refs/tags/v')
runs-on: ubuntu-latest
environment:
name: pypi
permissions:
id-token: write # Required for PyPI Trusted Publishing
contents: write # Required to create GitHub Release and upload assets
steps:
- name: Checkout
uses: actions/checkout@v6
with:
# Fetch all history so we can see other branches
fetch-depth: 0

- name: Verify Tag is on Main
# Only perform this check if we were triggered by a tag
if: startsWith(github.ref, 'refs/tags/v')
run: |
# Check if 'main' branch contains the current commit
if ! git branch -r --contains ${{ github.sha }} | grep -q "origin/main"; then
echo "::error::Tag ${{ github.ref_name }} was pushed on a non-main branch. Skipping workflow."
exit 1
fi

- name: Install uv
uses: astral-sh/setup-uv@v7

- name: Install Python 3.13
run: uv python install 3.13

- name: Build
run: uv build

- name: Publish to PyPI
run: uv publish --check-url https://pypi.org/simple

- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with:
generate_release_notes: true
files: |
dist/*.whl
dist/*.tar.gz
9 changes: 9 additions & 0 deletions .pre-commit-config.yaml
Original file line numberDiff line numberDiff line change
Expand Up@@ -27,3 +27,12 @@ repos:
rev: v1.1.408
hooks:
- id: pyright
- repo: local
hooks:
- id: act-test
name: Run GitHub Actions locally (act)
entry: act -j test
language: system
stages: [pre-push]
pass_filenames: false
files: ^(src/|tests/|pyproject\.toml|uv\.lock)
Loading
Loading
, '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
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
b2276c0
Renaming package to stochas
Hydrowelder Apr 4, 2026
7008556
Update readme
Hydrowelder Apr 4, 2026
a4b159a
Update license
Hydrowelder Apr 4, 2026
6f2ea01
Update readme link
Hydrowelder Apr 4, 2026
1a1a2af
Updated project urls
Hydrowelder Apr 4, 2026
668c827
Branding update
Hydrowelder Apr 4, 2026
9b04bed
Bump version
Hydrowelder Apr 4, 2026
455a8b4
Added auto release to workflow
Hydrowelder Apr 4, 2026
eda3fa1
Update workflow
Hydrowelder Apr 4, 2026
380ae75
Only run act-test on changes to source code
Hydrowelder Apr 4, 2026
6ac7c97
Skip uv publish if the version is already out there
Hydrowelder Apr 4, 2026
ff217b2
Update workflow
Hydrowelder Apr 4, 2026
98ee254
Bump version
Hydrowelder Apr 4, 2026
b168505
Bump version
Hydrowelder Apr 6, 2026
034193c
Added support for python 3.14
Hydrowelder Apr 17, 2026
74aee4a
Bump version
Hydrowelder Apr 17, 2026
c2605ce
Fix to use main instead of master
Hydrowelder Apr 17, 2026
0d2ea34
Update badge link to use 'main' branch
Hydrowelder Apr 18, 2026
dfb9716
Switching to use a sentinel value instead of overloading the NamedVal…
Hydrowelder Apr 18, 2026
7f514ab
Fixes to named value serialization with generic types
Hydrowelder Apr 19, 2026
776c249
Merge branch 'main' of https://github.com/Hydrowelder/stochas
Hydrowelder Apr 19, 2026
fcf1a95
Inherited from MuJoCo Mojo
Hydrowelder Apr 21, 2026
2ef4eb7
Added more optimization functionality
Hydrowelder Apr 21, 2026
a0fec13
Updated logo
Hydrowelder Apr 24, 2026
93e1273
Update CSS and logo
Hydrowelder Apr 24, 2026
f4d38dc
Added logo to readme
Hydrowelder Apr 24, 2026
14da87c
Added abstracts for user guides
Hydrowelder Apr 25, 2026
13d0f7f
Replace UL list characters
Hydrowelder May 2, 2026
2fa8fe2
Bump version
Hydrowelder May 2, 2026
04c7ea2
Fixes for multiprocessing
Hydrowelder May 7, 2026
4873db6
Fix badges
Hydrowelder May 11, 2026
8d60fce
Fixed the sample_dist bug where repeated calls would crash the code r…
Hydrowelder May 28, 2026
abd48d6
Added rayleigh distribution and validations for design variables
Hydrowelder Jun 13, 2026
b491c50
Updated figures to sweep different distributions
Hydrowelder Jun 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
119 changes: 0 additions & 119 deletions .github/workflows/publish.yml

This file was deleted.

80 changes: 80 additions & 0 deletions .github/workflows/workflow.yml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
name: "Publish"

on:
push:
branches: ["main"] # Run tests on every push to main
tags: ["v*"] # Run tests AND publish on tags
pull_request:
branches: ["main"] # Run tests on PRs

jobs:
test:
name: "Test (Python ${{ matrix.python-version }})"
runs-on: ubuntu-latest
strategy:
matrix:
# Parallelize tests across your supported versions
python-version: ["3.12", "3.13", "3.14"]

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Install uv
uses: astral-sh/setup-uv@v5
with:
enable-cache: true

- name: Install Python ${{ matrix.python-version }}
run: uv python install ${{ matrix.python-version }}

- name: Run unit tests
# Explicitly tells uv which python version to use for the test environment
run: uv run --python ${{ matrix.python-version }} --group dev pytest
publish:
name: "Build and Publish"
needs: [test]
# ONLY run this job if the push was actually a tag
if: startsWith(github.ref, 'refs/tags/v')
runs-on: ubuntu-latest
environment:
name: pypi
permissions:
id-token: write # Required for PyPI Trusted Publishing
contents: write # Required to create GitHub Release and upload assets
steps:
- name: Checkout
uses: actions/checkout@v6
with:
# Fetch all history so we can see other branches
fetch-depth: 0

- name: Verify Tag is on Main
# Only perform this check if we were triggered by a tag
if: startsWith(github.ref, 'refs/tags/v')
run: |
# Check if 'main' branch contains the current commit
if ! git branch -r --contains ${{ github.sha }} | grep -q "origin/main"; then
echo "::error::Tag ${{ github.ref_name }} was pushed on a non-main branch. Skipping workflow."
exit 1
fi

- name: Install uv
uses: astral-sh/setup-uv@v7

- name: Install Python 3.13
run: uv python install 3.13

- name: Build
run: uv build

- name: Publish to PyPI
run: uv publish --check-url https://pypi.org/simple

- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with:
generate_release_notes: true
files: |
dist/*.whl
dist/*.tar.gz
9 changes: 9 additions & 0 deletions .pre-commit-config.yaml
Original file line numberDiff line numberDiff line change
Expand Up@@ -27,3 +27,12 @@ repos:
rev: v1.1.408
hooks:
- id: pyright
- repo: local
hooks:
- id: act-test
name: Run GitHub Actions locally (act)
entry: act -j test
language: system
stages: [pre-push]
pass_filenames: false
files: ^(src/|tests/|pyproject\.toml|uv\.lock)
Loading
Loading
, '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
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
b2276c0
Renaming package to stochas
Hydrowelder Apr 4, 2026
7008556
Update readme
Hydrowelder Apr 4, 2026
a4b159a
Update license
Hydrowelder Apr 4, 2026
6f2ea01
Update readme link
Hydrowelder Apr 4, 2026
1a1a2af
Updated project urls
Hydrowelder Apr 4, 2026
668c827
Branding update
Hydrowelder Apr 4, 2026
9b04bed
Bump version
Hydrowelder Apr 4, 2026
455a8b4
Added auto release to workflow
Hydrowelder Apr 4, 2026
eda3fa1
Update workflow
Hydrowelder Apr 4, 2026
380ae75
Only run act-test on changes to source code
Hydrowelder Apr 4, 2026
6ac7c97
Skip uv publish if the version is already out there
Hydrowelder Apr 4, 2026
ff217b2
Update workflow
Hydrowelder Apr 4, 2026
98ee254
Bump version
Hydrowelder Apr 4, 2026
b168505
Bump version
Hydrowelder Apr 6, 2026
034193c
Added support for python 3.14
Hydrowelder Apr 17, 2026
74aee4a
Bump version
Hydrowelder Apr 17, 2026
c2605ce
Fix to use main instead of master
Hydrowelder Apr 17, 2026
0d2ea34
Update badge link to use 'main' branch
Hydrowelder Apr 18, 2026
dfb9716
Switching to use a sentinel value instead of overloading the NamedVal…
Hydrowelder Apr 18, 2026
7f514ab
Fixes to named value serialization with generic types
Hydrowelder Apr 19, 2026
776c249
Merge branch 'main' of https://github.com/Hydrowelder/stochas
Hydrowelder Apr 19, 2026
fcf1a95
Inherited from MuJoCo Mojo
Hydrowelder Apr 21, 2026
2ef4eb7
Added more optimization functionality
Hydrowelder Apr 21, 2026
a0fec13
Updated logo
Hydrowelder Apr 24, 2026
93e1273
Update CSS and logo
Hydrowelder Apr 24, 2026
f4d38dc
Added logo to readme
Hydrowelder Apr 24, 2026
14da87c
Added abstracts for user guides
Hydrowelder Apr 25, 2026
13d0f7f
Replace UL list characters
Hydrowelder May 2, 2026
2fa8fe2
Bump version
Hydrowelder May 2, 2026
04c7ea2
Fixes for multiprocessing
Hydrowelder May 7, 2026
4873db6
Fix badges
Hydrowelder May 11, 2026
8d60fce
Fixed the sample_dist bug where repeated calls would crash the code r…
Hydrowelder May 28, 2026
abd48d6
Added rayleigh distribution and validations for design variables
Hydrowelder Jun 13, 2026
b491c50
Updated figures to sweep different distributions
Hydrowelder Jun 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
119 changes: 0 additions & 119 deletions .github/workflows/publish.yml

This file was deleted.

80 changes: 80 additions & 0 deletions .github/workflows/workflow.yml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
name: "Publish"

on:
push:
branches: ["main"] # Run tests on every push to main
tags: ["v*"] # Run tests AND publish on tags
pull_request:
branches: ["main"] # Run tests on PRs

jobs:
test:
name: "Test (Python ${{ matrix.python-version }})"
runs-on: ubuntu-latest
strategy:
matrix:
# Parallelize tests across your supported versions
python-version: ["3.12", "3.13", "3.14"]

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Install uv
uses: astral-sh/setup-uv@v5
with:
enable-cache: true

- name: Install Python ${{ matrix.python-version }}
run: uv python install ${{ matrix.python-version }}

- name: Run unit tests
# Explicitly tells uv which python version to use for the test environment
run: uv run --python ${{ matrix.python-version }} --group dev pytest
publish:
name: "Build and Publish"
needs: [test]
# ONLY run this job if the push was actually a tag
if: startsWith(github.ref, 'refs/tags/v')
runs-on: ubuntu-latest
environment:
name: pypi
permissions:
id-token: write # Required for PyPI Trusted Publishing
contents: write # Required to create GitHub Release and upload assets
steps:
- name: Checkout
uses: actions/checkout@v6
with:
# Fetch all history so we can see other branches
fetch-depth: 0

- name: Verify Tag is on Main
# Only perform this check if we were triggered by a tag
if: startsWith(github.ref, 'refs/tags/v')
run: |
# Check if 'main' branch contains the current commit
if ! git branch -r --contains ${{ github.sha }} | grep -q "origin/main"; then
echo "::error::Tag ${{ github.ref_name }} was pushed on a non-main branch. Skipping workflow."
exit 1
fi

- name: Install uv
uses: astral-sh/setup-uv@v7

- name: Install Python 3.13
run: uv python install 3.13

- name: Build
run: uv build

- name: Publish to PyPI
run: uv publish --check-url https://pypi.org/simple

- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with:
generate_release_notes: true
files: |
dist/*.whl
dist/*.tar.gz
9 changes: 9 additions & 0 deletions .pre-commit-config.yaml
Original file line numberDiff line numberDiff line change
Expand Up@@ -27,3 +27,12 @@ repos:
rev: v1.1.408
hooks:
- id: pyright
- repo: local
hooks:
- id: act-test
name: Run GitHub Actions locally (act)
entry: act -j test
language: system
stages: [pre-push]
pass_filenames: false
files: ^(src/|tests/|pyproject\.toml|uv\.lock)
Loading
Loading
, '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
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
b2276c0
Renaming package to stochas
Hydrowelder Apr 4, 2026
7008556
Update readme
Hydrowelder Apr 4, 2026
a4b159a
Update license
Hydrowelder Apr 4, 2026
6f2ea01
Update readme link
Hydrowelder Apr 4, 2026
1a1a2af
Updated project urls
Hydrowelder Apr 4, 2026
668c827
Branding update
Hydrowelder Apr 4, 2026
9b04bed
Bump version
Hydrowelder Apr 4, 2026
455a8b4
Added auto release to workflow
Hydrowelder Apr 4, 2026
eda3fa1
Update workflow
Hydrowelder Apr 4, 2026
380ae75
Only run act-test on changes to source code
Hydrowelder Apr 4, 2026
6ac7c97
Skip uv publish if the version is already out there
Hydrowelder Apr 4, 2026
ff217b2
Update workflow
Hydrowelder Apr 4, 2026
98ee254
Bump version
Hydrowelder Apr 4, 2026
b168505
Bump version
Hydrowelder Apr 6, 2026
034193c
Added support for python 3.14
Hydrowelder Apr 17, 2026
74aee4a
Bump version
Hydrowelder Apr 17, 2026
c2605ce
Fix to use main instead of master
Hydrowelder Apr 17, 2026
0d2ea34
Update badge link to use 'main' branch
Hydrowelder Apr 18, 2026
dfb9716
Switching to use a sentinel value instead of overloading the NamedVal…
Hydrowelder Apr 18, 2026
7f514ab
Fixes to named value serialization with generic types
Hydrowelder Apr 19, 2026
776c249
Merge branch 'main' of https://github.com/Hydrowelder/stochas
Hydrowelder Apr 19, 2026
fcf1a95
Inherited from MuJoCo Mojo
Hydrowelder Apr 21, 2026
2ef4eb7
Added more optimization functionality
Hydrowelder Apr 21, 2026
a0fec13
Updated logo
Hydrowelder Apr 24, 2026
93e1273
Update CSS and logo
Hydrowelder Apr 24, 2026
f4d38dc
Added logo to readme
Hydrowelder Apr 24, 2026
14da87c
Added abstracts for user guides
Hydrowelder Apr 25, 2026
13d0f7f
Replace UL list characters
Hydrowelder May 2, 2026
2fa8fe2
Bump version
Hydrowelder May 2, 2026
04c7ea2
Fixes for multiprocessing
Hydrowelder May 7, 2026
4873db6
Fix badges
Hydrowelder May 11, 2026
8d60fce
Fixed the sample_dist bug where repeated calls would crash the code r…
Hydrowelder May 28, 2026
abd48d6
Added rayleigh distribution and validations for design variables
Hydrowelder Jun 13, 2026
b491c50
Updated figures to sweep different distributions
Hydrowelder Jun 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
119 changes: 0 additions & 119 deletions .github/workflows/publish.yml

This file was deleted.

80 changes: 80 additions & 0 deletions .github/workflows/workflow.yml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
name: "Publish"

on:
push:
branches: ["main"] # Run tests on every push to main
tags: ["v*"] # Run tests AND publish on tags
pull_request:
branches: ["main"] # Run tests on PRs

jobs:
test:
name: "Test (Python ${{ matrix.python-version }})"
runs-on: ubuntu-latest
strategy:
matrix:
# Parallelize tests across your supported versions
python-version: ["3.12", "3.13", "3.14"]

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Install uv
uses: astral-sh/setup-uv@v5
with:
enable-cache: true

- name: Install Python ${{ matrix.python-version }}
run: uv python install ${{ matrix.python-version }}

- name: Run unit tests
# Explicitly tells uv which python version to use for the test environment
run: uv run --python ${{ matrix.python-version }} --group dev pytest
publish:
name: "Build and Publish"
needs: [test]
# ONLY run this job if the push was actually a tag
if: startsWith(github.ref, 'refs/tags/v')
runs-on: ubuntu-latest
environment:
name: pypi
permissions:
id-token: write # Required for PyPI Trusted Publishing
contents: write # Required to create GitHub Release and upload assets
steps:
- name: Checkout
uses: actions/checkout@v6
with:
# Fetch all history so we can see other branches
fetch-depth: 0

- name: Verify Tag is on Main
# Only perform this check if we were triggered by a tag
if: startsWith(github.ref, 'refs/tags/v')
run: |
# Check if 'main' branch contains the current commit
if ! git branch -r --contains ${{ github.sha }} | grep -q "origin/main"; then
echo "::error::Tag ${{ github.ref_name }} was pushed on a non-main branch. Skipping workflow."
exit 1
fi

- name: Install uv
uses: astral-sh/setup-uv@v7

- name: Install Python 3.13
run: uv python install 3.13

- name: Build
run: uv build

- name: Publish to PyPI
run: uv publish --check-url https://pypi.org/simple

- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with:
generate_release_notes: true
files: |
dist/*.whl
dist/*.tar.gz
9 changes: 9 additions & 0 deletions .pre-commit-config.yaml
Original file line numberDiff line numberDiff line change
Expand Up@@ -27,3 +27,12 @@ repos:
rev: v1.1.408
hooks:
- id: pyright
- repo: local
hooks:
- id: act-test
name: Run GitHub Actions locally (act)
entry: act -j test
language: system
stages: [pre-push]
pass_filenames: false
files: ^(src/|tests/|pyproject\.toml|uv\.lock)
Loading
Loading