41554 blogs · [ { "id": "01a08736-7cc9-7367-a4ac-c607b481ad32", "title": "How I use ChatGPT daily (scientist/coder perspective)", "url": "https://bartwronski.com/2024/01/22/how-i-use-chatgpt-daily-scientist-coder-perspective/", "published_at": "2024-01-22T15:27:21+00:00" }, { "id": "01a08736-7cc9-7367-a4ac-c607b57662c9", "title": "Praising hacking and low-tech solutions. ChatGPT wrote me a personal Javascript browser “plugin.”", "url": "https://bartwronski.com/2023/09/17/praising-hacking-and-low-tech-solutions-chatgpt-wrote-me-a-personal-javascript-browser-plugin/", "published_at": "2023-09-17T20:37:26+00:00" }, { "id": "01a08736-7cc9-7367-a4ac-c607b655286b", "title": "I left Silicon Valley for NYC 2.5y ago – a retrospective", "url": "https://bartwronski.com/2023/09/04/i-left-silicon-valley-for-nyc-2-5y-ago-a-retrospective/", "published_at": "2023-09-05T03:12:34+00:00" }, { "id": "01a08736-7cc9-7367-a4ac-c607b73de2f9", "title": "Gradient-descent optimized recursive filters for deconvolution / deblurring", "url": "https://bartwronski.com/2022/09/05/gradient-descent-optimized-recursive-filters-for-deconvolution-deblurring/", "published_at": "2022-09-06T00:43:37+00:00" }, { "id": "01a08736-7cc9-7367-a4ac-c607b7d4136e", "title": "Progressive image stippling and greedy blue noise importance sampling", "url": "https://bartwronski.com/2022/08/31/progressive-image-stippling-and-greedy-blue-noise-importance-sampling/", "published_at": "2022-08-31T13:44:39+00:00" }, { "id": "01a08736-7cc9-7367-a4ac-c607b84fb2a6", "title": "Removing blur from images – deconvolution and using optimized simple filters", "url": "https://bartwronski.com/2022/05/26/removing-blur-from-images-deconvolution-and-using-optimized-simple-filters/", "published_at": "2022-05-26T15:00:37+00:00" }, { "id": "01a08736-7cc9-7367-a4ac-c607b8535b67", "title": "Transforming “noise” and random variables through non-linearities", "url": "https://bartwronski.com/2022/03/16/transforming-noise-and-random-variables-through-non-linearities/", "published_at": "2022-03-16T14:54:44+00:00" }, { "id": "01a08736-7cc9-7367-a4ac-c607b85b588f", "title": "Fast, GPU friendly, antialiasing downsampling filter", "url": "https://bartwronski.com/2022/03/07/fast-gpu-friendly-antialiasing-downsampling-filter/", "published_at": "2022-03-07T15:32:39+00:00" }, { "id": "01a08736-7cc9-7367-a4ac-c607b8757b0f", "title": "Exposure Fusion – local tonemapping for real-time rendering", "url": "https://bartwronski.com/2022/02/28/exposure-fusion-local-tonemapping-for-real-time-rendering/", "published_at": "2022-02-28T18:04:16+00:00" }, { "id": "01a08736-7cc9-7367-a4ac-c607b8e690fe", "title": "Light transport matrices, SVD, spectral analysis, and matrix completion", "url": "https://bartwronski.com/2022/02/15/light-transport-matrices-svd-spectral-analysis-and-matrix-completion/", "published_at": "2022-02-15T20:48:57+00:00" }, { "id": "01a0e447-fe56-7127-a286-cdfc1fd2a20e", "title": "Insider guide to tech interviews", "url": "https://bartwronski.com/2022/01/04/insider-guide-to-tech-interviews/", "published_at": "2022-01-04T14:56:07+00:00" }, { "id": "01a0e447-fe56-7127-a286-cdfc20511542", "title": "Procedural Kernel (Neural) Networks", "url": "https://bartwronski.com/2022/01/03/procedural-kernel-neural-networks/", "published_at": "2022-01-03T16:20:42+00:00" }, { "id": "01a0e447-fe56-7127-a286-cdfc20e0d6ca", "title": "Study of smoothing filters – Savitzky-Golay filters", "url": "https://bartwronski.com/2021/11/03/study-of-smoothing-filters-savitzky-golay-filters/", "published_at": "2021-11-03T13:11:30+00:00" }, { "id": "01a0e447-fe56-7127-a286-cdfc21a7442e", "title": "Practical Gaussian filtering: Binomial filter and small sigma Gaussians", "url": "https://bartwronski.com/2021/10/31/practical-gaussian-filter-binomial-filter-and-small-sigma-gaussians/", "published_at": "2021-10-31T18:39:55+00:00" }, { "id": "01a0e447-fe56-7127-a286-cdfc22a32bb7", "title": "Modding Korg MS-20 Mini – PWM, Sync, Osc2 FM", "url": "https://bartwronski.com/2021/10/14/modding-korg-ms-20-mini-pwm-sync-fm/", "published_at": "2021-10-14T23:35:35+00:00" }, { "id": "01a0e447-fe56-7127-a286-cdfc233db656", "title": "Processing aware image filtering: compensating for the upsampling", "url": "https://bartwronski.com/2021/07/20/processing-aware-image-filtering-compensating-for-the-upsampling/", "published_at": "2021-07-21T03:45:02+00:00" }, { "id": "01a0e447-fe56-7127-a286-cdfc24319523", "title": "Comparing images in frequency domain. “Spectral loss” – does it make sense?", "url": "https://bartwronski.com/2021/07/06/comparing-images-in-frequency-domain-spectral-loss-does-it-make-sense/", "published_at": "2021-07-06T22:07:46+00:00" }, { "id": "01a0e447-fe56-7127-a286-cdfc2490e913", "title": "On leaving California and the Silicon Valley", "url": "https://bartwronski.com/2021/06/28/on-leaving-california-and-the-silicon-valley/", "published_at": "2021-06-29T03:49:40+00:00" }, { "id": "01a0e447-fe56-7127-a286-cdfc25550480", "title": "Neural material (de)compression – data-driven nonlinear dimensionality reduction", "url": "https://bartwronski.com/2021/05/30/neural-material-decompression-data-driven-nonlinear-dimensionality-reduction/", "published_at": "2021-05-31T03:38:21+00:00" }, { "id": "01a0e447-fe56-7127-a286-cdfc259a7fa4", "title": "Superfast void-and-cluster Blue Noise in Python (Numpy/Jax)", "url": "https://bartwronski.com/2021/04/21/superfast-void-and-cluster-blue-noise-in-python-numpy-jax/", "published_at": "2021-04-22T04:05:24+00:00" }, { "id": "01a0e454-2cab-732a-8d28-1fd86d346672", "title": "Computing gradients on grids of pixels and voxels – forward, central, and… diagonal differences", "url": "https://bartwronski.com/2021/02/28/computing-gradients-on-grids-forward-central-and-diagonal-differences/", "published_at": "2021-03-01T04:13:50+00:00" }, { "id": "01a0e454-2cab-732a-8d28-1fd86d61e4d6", "title": "Bilinear down/upsampling, aligning pixel grids, and that infamous GPU half pixel offset", "url": "https://bartwronski.com/2021/02/15/bilinear-down-upsampling-pixel-grids-and-that-half-pixel-offset/", "published_at": "2021-02-16T02:00:25+00:00" }, { "id": "01a0e454-2cab-732a-8d28-1fd86e1fb1ec", "title": "Is this a branch?", "url": "https://bartwronski.com/2021/01/18/is-this-a-branch/", "published_at": "2021-01-19T03:14:58+00:00" }, { "id": "01a0e454-2cab-732a-8d28-1fd86e781f61", "title": "Converting wavetables to Ableton Operator AMS waves", "url": "https://bartwronski.com/2021/01/05/converting-wavetables-to-ableton-operator-ams-waves/", "published_at": "2021-01-06T02:10:10+00:00" }, { "id": "01a0e454-2cab-732a-8d28-1fd86f2606ba", "title": "Why are video games graphics (still) a challenge? Productionizing rendering algorithms", "url": "https://bartwronski.com/2020/12/27/why-are-video-games-graphics-still-a-challenge-productionizing-rendering-algorithms/", "published_at": "2020-12-28T07:09:46+00:00" }, { "id": "01a0e454-2cab-732a-8d28-1fd870013645", "title": "Compressing PBR material texture sets with sparsity and k-SVD dictionary learning", "url": "https://bartwronski.com/2020/08/30/compressing-pbr-texture-sets-with-sparsity-and-dictionary-learning/", "published_at": "2020-08-31T01:23:23+00:00" }, { "id": "01a0e454-2cab-732a-8d28-1fd8704b6097", "title": "Dimensionality reduction for image and texture set compression", "url": "https://bartwronski.com/2020/05/21/dimensionality-reduction-for-image-and-texture-set-compression/", "published_at": "2020-05-22T04:47:49+00:00" }, { "id": "01a0e454-2cab-732a-8d28-1fd87143d74b", "title": "“Optimizing” blue noise dithering – backpropagation through Fourier transform and sorting", "url": "https://bartwronski.com/2020/04/26/optimizing-blue-noise-dithering-backpropagation-through-fourier-transform-and-sorting/", "published_at": "2020-04-27T04:19:34+00:00" }, { "id": "01a0e454-2cab-732a-8d28-1fd8724280f4", "title": "Bilinear texture filtering – artifacts, alternatives, and frequency domain analysis", "url": "https://bartwronski.com/2020/04/14/bilinear-texture-filtering-artifacts-alternatives-and-frequency-domain-analysis/", "published_at": "2020-04-15T05:29:26+00:00" }, { "id": "01a0e454-2cab-732a-8d28-1fd872af4057", "title": "Using JAX, numpy, and optimization techniques to improve separable image filters", "url": "https://bartwronski.com/2020/03/15/using-jax-numpy-and-optimization-techniques-to-improve-separable-image-filters/", "published_at": "2020-03-16T04:00:43+00:00" }, { "id": "01a0e460-1900-712c-88c5-af9824394ce8", "title": "Separate your filters! Separability, SVD and low-rank approximation of 2D image processing filters", "url": "https://bartwronski.com/2020/02/03/separate-your-filters-svd-and-low-rank-approximation-of-image-filters/", "published_at": "2020-02-03T05:20:55+00:00" }, { "id": "01a0e460-1900-712c-88c5-af98245187d9", "title": "Analyze your own activity data using Google Takeout – music listening stats example", "url": "https://bartwronski.com/2020/01/06/analyze-your-own-activity-data-using-google-takeout/", "published_at": "2020-01-06T06:56:28+00:00" }, { "id": "01a0e460-1900-712c-88c5-af9825404870", "title": "Local linear models and guided filtering – an alternative to bilateral filter", "url": "https://bartwronski.com/2019/09/22/local-linear-models-guided-filter/", "published_at": "2019-09-23T04:25:49+00:00" }, { "id": "01a0e460-1900-712c-88c5-af982570fa0c", "title": "How (not) to test graphics algorithms", "url": "https://bartwronski.com/2019/08/14/how-not-to-test-graphics-algorithms/", "published_at": "2019-08-14T05:17:59+00:00" }, { "id": "01a0e460-1900-712c-88c5-af9825813e32", "title": "Checkerboard rendering, rotated anti-aliasing and grid frequencies", "url": "https://bartwronski.com/2018/05/14/checkerboard-rendering-rotated-anti-aliasing-and-grid-frequencies/", "published_at": "2018-05-14T05:15:12+00:00" }, { "id": "01a0e460-1900-712c-88c5-af982628f3aa", "title": "Tech and scientific writing – graphics, diagram and graph creation tools", "url": "https://bartwronski.com/2017/10/22/tech-and-scientific-writing-graphics-diagram-and-graph-creation-tools/", "published_at": "2017-10-23T03:08:02+00:00" }, { "id": "01a0e460-1900-712c-88c5-af98264f17f4", "title": "Separable disk-like depth of field", "url": "https://bartwronski.com/2017/08/06/separable-bokeh/", "published_at": "2017-08-07T01:12:15+00:00" }, { "id": "01a0e460-1900-712c-88c5-af98271c6b97", "title": "Cull that cone! Improved cone/spotlight visibility tests for tiled and clustered lighting", "url": "https://bartwronski.com/2017/04/13/cull-that-cone/", "published_at": "2017-04-14T03:52:24+00:00" }, { "id": "01a0e460-1900-712c-88c5-af9827cd3271", "title": "Small float formats – R11G11B10F precision", "url": "https://bartwronski.com/2017/04/02/small-float-formats-r11g11b10f-precision/", "published_at": "2017-04-02T05:50:09+00:00" }, { "id": "01a0e460-1900-712c-88c5-af982837a1c6", "title": "Dithering part three – real world 2D quantization dithering", "url": "https://bartwronski.com/2016/10/30/dithering-part-three-real-world-2d-quantization-dithering/", "published_at": "2016-10-31T02:23:52+00:00" }, { "id": "01a0e469-2404-724e-9fbe-e500fb3e45b3", "title": "Dithering part two – golden ratio sequence, blue noise and highpass-and-remap", "url": "https://bartwronski.com/2016/10/30/dithering-part-two-golden-ratio-sequence-blue-noise-and-highpass-and-remap/", "published_at": "2016-10-31T02:22:57+00:00" }, { "id": "01a0e469-2404-724e-9fbe-e500fb9d1071", "title": "Dithering part one – simple quantization", "url": "https://bartwronski.com/2016/10/30/dithering-part-one-simple-quantization/", "published_at": "2016-10-31T02:22:03+00:00" }, { "id": "01a0e469-2404-724e-9fbe-e500fbf444d9", "title": "Dithering in games – mini series", "url": "https://bartwronski.com/2016/10/30/dithering-in-games-mini-series/", "published_at": "2016-10-31T02:20:57+00:00" }, { "id": "01a0e469-2404-724e-9fbe-e500fc4bc77d", "title": "Short names are short", "url": "https://bartwronski.com/2016/09/14/short-names-are-short/", "published_at": "2016-09-15T04:59:51+00:00" }, { "id": "01a0e469-2405-7208-91eb-27ab1c81a5b3", "title": "Image dynamic range", "url": "https://bartwronski.com/2016/09/01/dynamic-range-and-evs/", "published_at": "2016-09-01T05:32:47+00:00" }, { "id": "01a0e469-2405-7208-91eb-27ab1c91426c", "title": "Localized tonemapping – is global exposure and global tonemapping operator enough for video games?", "url": "https://bartwronski.com/2016/08/29/localized-tonemapping/", "published_at": "2016-08-29T05:59:22+00:00" }, { "id": "01a0e469-2405-7208-91eb-27ab1ce5f7cf", "title": "Technical debt… or technical weight/burden?", "url": "https://bartwronski.com/2016/06/26/technical-weight/", "published_at": "2016-06-27T04:31:23+00:00" }, { "id": "01a0e469-2405-7208-91eb-27ab1d1f55f0", "title": "White balance and physically based rendering pipelines. Part 2 – practical problems.", "url": "https://bartwronski.com/2015/10/14/white-balance-and-physically-based-rendering-pipelines-part-2-practical-problems/", "published_at": "2015-10-15T04:14:01+00:00" }, { "id": "01a0e469-2405-7208-91eb-27ab1d8f9cfa", "title": "White balance and physically based rendering pipelines. Part 1 – introduction.", "url": "https://bartwronski.com/2015/10/14/white-balance-and-physically-based-rendering-pipelines-part-1-introduction/", "published_at": "2015-10-14T05:28:21+00:00" }, { "id": "01a0e469-2405-7208-91eb-27ab1d9262b9", "title": "Fixing screen-space deferred decals", "url": "https://bartwronski.com/2015/03/12/fixing-screen-space-deferred-decals/", "published_at": "2015-03-12T05:47:36+00:00" }, { "id": "01a0e470-71b8-70a6-94ae-f8f198a2d487", "title": "Anamorphic lens flares and visual effects", "url": "https://bartwronski.com/2015/03/09/anamorphic-lens-flares-and-visual-effects/", "published_at": "2015-03-09T06:26:00+00:00" }, { "id": "01a0e470-71b8-70a6-94ae-f8f198d77b03", "title": "Processing scanned/DSLR photos of film negatives in Lightroom", "url": "https://bartwronski.com/2015/02/19/processing-scanneddslr-photos-of-film-negatives-in-lightroom/", "published_at": "2015-02-19T05:10:16+00:00" }, { "id": "01a0e470-71b8-70a6-94ae-f8f199212886", "title": "Designing a next-generation post-effects pipeline", "url": "https://bartwronski.com/2014/12/09/designing-a-next-generation-post-effects-pipeline/", "published_at": "2014-12-10T04:43:16+00:00" }, { "id": "01a0e470-71b8-70a6-94ae-f8f199ccda18", "title": "CSharpRenderer Framework update", "url": "https://bartwronski.com/2014/10/18/csharprenderer-framework-update/", "published_at": "2014-10-19T01:07:11+00:00" }, { "id": "01a0e470-71b8-70a6-94ae-f8f19a6674bf", "title": "Review: “Multithreading for Visual Effects”, CRC Press 2014", "url": "https://bartwronski.com/2014/09/21/review-multithreading-for-visual-effects/", "published_at": "2014-09-21T21:32:51+00:00" }, { "id": "01a0e470-71b8-70a6-94ae-f8f19afc6673", "title": "Python as scientific toolbox – 8 months later", "url": "https://bartwronski.com/2014/09/16/python-as-scientific-toolbox/", "published_at": "2014-09-17T00:47:59+00:00" }, { "id": "01a0e470-71b8-70a6-94ae-f8f19b22a9c8", "title": "New debugging options in CSharpRenderer framework", "url": "https://bartwronski.com/2014/09/14/new-debugging-options-in-csharprenderer-framework/", "published_at": "2014-09-15T01:52:26+00:00" }, { "id": "01a0e470-71b8-70a6-94ae-f8f19c07b92d", "title": "Updated Poisson-like generator with GUI and more", "url": "https://bartwronski.com/2014/09/05/updated-poisson-like-generator-with-gui-and-more/", "published_at": "2014-09-06T00:58:04+00:00" }, { "id": "01a0e470-71b8-70a6-94ae-f8f19c2e0d42", "title": "Major C#/.NET graphics framework update + volumetric fog code!", "url": "https://bartwronski.com/2014/08/20/major-c-net-graphics-framework-update-volumetric-fog-code/", "published_at": "2014-08-21T01:20:21+00:00" }, { "id": "01a0e470-71b8-70a6-94ae-f8f19c9243df", "title": "Siggraph 2014 talk slides are up!", "url": "https://bartwronski.com/2014/08/11/siggraph-2014-talk-slides-are-up/", "published_at": "2014-08-12T00:07:20+00:00" }, { "id": "01a0e479-2b81-7035-9e2f-e129e05115ab", "title": "Voigtlander Nokton Classic 40mm f1.4 M on Sony A7 Review", "url": "https://bartwronski.com/2014/08/08/voigtlander-nokton-classic-40mm-f1-4-m-on-sony-a7-review/", "published_at": "2014-08-09T00:43:22+00:00" }, { "id": "01a0e479-2b81-7035-9e2f-e129e123ba05", "title": "Poisson disk/square sampling generator for rendering", "url": "https://bartwronski.com/2014/08/08/poisson-disksquare-sampling-generator-for-rendering/", "published_at": "2014-08-08T16:11:25+00:00" }, { "id": "01a0e479-2b81-7035-9e2f-e129e13bbe0d", "title": "Sony A7 review", "url": "https://bartwronski.com/2014/07/31/sony-a7-review/", "published_at": "2014-08-01T00:14:39+00:00" }, { "id": "01a0e479-2b81-7035-9e2f-e129e232d5ce", "title": "Hair rendering trick(s)", "url": "https://bartwronski.com/2014/07/20/hair-rendering-tricks/", "published_at": "2014-07-20T22:34:52+00:00" }, { "id": "01a0e479-2b81-7035-9e2f-e129e2fde76e", "title": "C#/.NET graphics framework on GitHub + updates", "url": "https://bartwronski.com/2014/06/08/c-net-graphics-framework-on-github-updates/", "published_at": "2014-06-08T19:30:21+00:00" }, { "id": "01a0e479-2b81-7035-9e2f-e129e31327c1", "title": "Coming back to film photography", "url": "https://bartwronski.com/2014/06/08/coming-back-to-film-photography/", "published_at": "2014-06-08T19:23:33+00:00" }, { "id": "01a0e479-2b81-7035-9e2f-e129e3d5905d", "title": "Runtime editor-console connection in The Witcher 2", "url": "https://bartwronski.com/2014/05/13/runtime-editor-console-connection-in-the-witcher-2/", "published_at": "2014-05-14T02:40:53+00:00" }, { "id": "01a0e479-2b81-7035-9e2f-e129e4032284", "title": "Digital Dragons 2014 slides", "url": "https://bartwronski.com/2014/05/09/digital-dragons-2014-slides/", "published_at": "2014-05-09T14:11:05+00:00" }, { "id": "01a0e479-2b81-7035-9e2f-e129e4d790a9", "title": "Temporal supersampling pt. 2 – SSAO demonstration", "url": "https://bartwronski.com/2014/04/27/temporal-supersampling-pt-2-ssao-demonstration/", "published_at": "2014-04-28T01:35:55+00:00" }, { "id": "01a0e479-2b81-7035-9e2f-e129e516bfa6", "title": "C#/.NET graphics framework", "url": "https://bartwronski.com/2014/04/10/c-net-graphics-framework/", "published_at": "2014-04-11T00:01:52+00:00" }, { "id": "01a0e480-ab1d-7218-8e2c-3387fce261ed", "title": "Bokeh depth of field – going insane! part 1", "url": "https://bartwronski.com/2014/04/07/bokeh-depth-of-field-going-insane-part-1/", "published_at": "2014-04-08T00:44:02+00:00" }, { "id": "01a0e480-ab1d-7218-8e2c-3387fd84f4a0", "title": "GCN – two ways of latency hiding and wave occupancy", "url": "https://bartwronski.com/2014/03/27/gcn-two-ways-of-latency-hiding-and-wave-occupancy/", "published_at": "2014-03-28T00:51:51+00:00" }, { "id": "01a0e480-ab1d-7218-8e2c-3387fe6b9721", "title": "GDC follow-up: Screenspace reflections filtering and up-sampling", "url": "https://bartwronski.com/2014/03/23/gdc-follow-up-screenspace-reflections-filtering-and-up-sampling/", "published_at": "2014-03-24T00:12:22+00:00" }, { "id": "01a0e480-ab1d-7218-8e2c-3387ff1ea0f1", "title": "Temporal supersampling and antialiasing", "url": "https://bartwronski.com/2014/03/15/temporal-supersampling-and-antialiasing/", "published_at": "2014-03-15T05:49:10+00:00" }, { "id": "01a0e480-ab1d-7218-8e2c-33880014ca94", "title": "My upcoming GDC 2014 presentation", "url": "https://bartwronski.com/2014/03/09/my-upcoming-gdc-2014-presentation/", "published_at": "2014-03-09T21:02:38+00:00" }, { "id": "01a0e480-ab1d-7218-8e2c-338800c0742c", "title": "Why big game studios (usually) use single main 3d software environment?", "url": "https://bartwronski.com/2014/02/25/why-big-game-studios-usually-use-single-main-3d-software-environment/", "published_at": "2014-02-26T00:29:41+00:00" }, { "id": "01a0e480-ab1d-7218-8e2c-338800f5737d", "title": "Compare it!", "url": "https://bartwronski.com/2014/02/05/compare-it/", "published_at": "2014-02-06T03:21:44+00:00" }, { "id": "01a0e480-ab1d-7218-8e2c-338800f947cc", "title": "The future of screenspace reflections", "url": "https://bartwronski.com/2014/01/25/the-future-of-screenspace-reflections/", "published_at": "2014-01-25T23:08:50+00:00" }, { "id": "01a0e480-ab1d-7218-8e2c-3388014093f2", "title": "On pursuit of (good) free mathematics toolbox", "url": "https://bartwronski.com/2014/01/19/mathematics-toolbox/", "published_at": "2014-01-20T00:20:45+00:00" }, { "id": "01a0e480-ab1d-7218-8e2c-338801d63d9d", "title": "My first visit to Cuba", "url": "https://bartwronski.com/2014/01/05/my-first-visit-to-cuba/", "published_at": "2014-01-06T03:22:30+00:00" } ] posts Claim your blog
Back to Bart Wronski | Technology, programming, art, machine learning, image and signal processing
Blog · corpus.blog/blogs/bartwronski.com/posts

Bart Wronski | Technology, programming, art, machine learning, image and signal processing

bartwronski.com

2024

2023

2022

2021

2020

2019

2018

2017

2016

2015

2014