Skip to content

Instantly share code, notes, and snippets.

@derek-rein
derek-rein / modal_volume_browser.py
Created March 6, 2025 15:26
Modal Volume Browser
import os
import sys
import json
import subprocess
from typing import List, Dict, Any, Optional
from PySide6.QtWidgets import (
QApplication, QMainWindow, QTreeView, QVBoxLayout, QHBoxLayout,
QWidget, QPushButton, QLineEdit, QLabel, QFileDialog, QMessageBox,
QInputDialog, QSplitter, QMenu, QDialog, QDialogButtonBox, QFormLayout,
@derek-rein
derek-rein / aovSetup.py
Created March 4, 2025 13:54
Automatic Blender AOV Setup
"""
AOV Setup Helper Addon for Blender
This addon sets up a complete VFX AOV (Arbitrary Output Variable) system with:
- Main beauty and lighting passes (16-bit)
- Data passes (32-bit)
- Cryptomatte passes (32-bit)
Usage:
1. Install the addon in Blender (Edit > Preferences > Add-ons > Install)
@derek-rein
derek-rein / database.py
Created December 9, 2022 16:43
IB Downloader
from ib_insync import Contract, Stock, Forex
from datetime import datetime, timedelta
from threading import Lock
import pandas as pd
from ibDownloader.downloader import IBDowload, Mode, BarSize
class DataBase(object):
"""
For accessing data that has been downloaded and saved already
Making requests to the downloader to extend alredy existing data
class DatetimeEncoder(json.JSONEncoder):
"""
zz = json.dumps(datetime.now(tz=LOCAL_TIMEZONE), cls=DatetimeEncoder)
"""
def default(self, obj):
try:
return super(DatetimeEncoder, obj).default(obj)
except TypeError:
return str(obj)
@derek-rein
derek-rein / FontComboBox
Created June 15, 2020 02:28
Custom font combobox
from PyQt5.QtCore import Qt, pyqtSignal
from PyQt5.QtGui import QFont
from PyQt5.QtWidgets import QComboBox
FONT_SIZES = [7, 8, 9, 10, 11, 12, 13, 14, 18, 24, 36, 48, 64, 72, 96]
class FontComboBox(QComboBox):
currentFontChanged = pyqtSignal(QFont)
@derek-rein
derek-rein / CalendarView.py
Created June 10, 2020 16:25
CalendarView
import typing
from PyQt5.QtCore import QDate
from PyQt5.QtCore import Qt, QAbstractTableModel, QItemSelectionModel, QItemSelection, QModelIndex
from PyQt5.QtGui import QMouseEvent
from PyQt5.QtWidgets import QTableView, QAbstractItemView
class TableModel(QAbstractTableModel):
def __init__(self):
set cut_paste_input [stack 0]
version 9.0 v7
push $cut_paste_input
Group {
name framePincher
tile_color 0x421010ff
label "\[value frame2Pinch]"
selected true
xpos 263
ypos 14788
#default settings
nuke.knobDefault("EXPTool.mode", "0")
nuke.knobDefault("Viewer.freezeGuiWhenPlayBack", "1")
nuke.knobDefault("Keymix.bbox", "1")
nuke.knobDefault("Keymix.channels", "rgba")
nuke.knobDefault("Merge.bbox", "3")
nuke.knobDefault("Shuffle.label", "[value in]")
nuke.knobDefault("Blur.channels", "rgba")
nuke.knobDefault("Blur.label", "[value size] px")
set cut_paste_input [stack 0]
version 9.0 v7
push $cut_paste_input
Group {
name surfaceDistortion
tile_color 0x421010ff
selected true
xpos 59
ypos -272
addUserKnob {20 surfaceDistortion}
set cut_paste_input [stack 0]
version 9.0 v7
push $cut_paste_input
Group {
name clarity
tile_color 0x421010ff
selected true
xpos -701
ypos 209
addUserKnob {20 User l clarity}