Skip to content

Instantly share code, notes, and snippets.

@LPGhatguy
LPGhatguy / comparison.md
Last active October 28, 2024 23:54
Jolt and Rapier

Comparing Rapier and Jolt

General Properties

Both Jolt and Rapier:

  • Support single and double precision simulation

Only Jolt:

  • Supports soft-body physics
  • Supports multiple object layers
  • Supports multiple broad phase layers
@LPGhatguy
LPGhatguy / output.json
Created July 22, 2023 20:33
Output of dyn upcasting survey
{"crate_name":"wgpu_core","trait_name":"hub::GlobalIdentityHandlerFactory","entries":"36","entries_ignoring_upcasting":"20","entries_for_upcasting":"16","upcasting_cost_percent":"80"}
{"crate_name":"num_traits","trait_name":"RefNum","entries":"23","entries_ignoring_upcasting":"13","entries_for_upcasting":"10","upcasting_cost_percent":"76.92307692307693"}
{"crate_name":"wgpu","trait_name":"context::ContextData","entries":"6","entries_ignoring_upcasting":"4","entries_for_upcasting":"2","upcasting_cost_percent":"50"}
{"crate_name":"num_traits","trait_name":"NumOps","entries":"12","entries_ignoring_upcasting":"8","entries_for_upcasting":"4","upcasting_cost_percent":"50"}
{"crate_name":"num_traits","trait_name":"NumAssignOps","entries":"12","entries_ignoring_upcasting":"8","entries_for_upcasting":"4","upcasting_cost_percent":"50"}
{"crate_name":"clap_builder","trait_name":"builder::ext::Extension","entries":"10","entries_ignoring_upcasting":"8","entries_for_upcasting":"2","upcasting_cost_percent":"25"}
{"crate_nam
@LPGhatguy
LPGhatguy / main.rs
Created April 7, 2019 22:44
What percentage of v4 UUIDs are valid UTF-8?
// uuid: 0.7.4 with "v4" feature enabled
// Valid UTF-8: 6868 / 100000000
// Valid %: 0.006868
//
// Sample strings:
//
// "2U6!>:NΫΈ\u{1e}cUV3m%"
// "Ι·1e\r}AΩ€Ξ•+3WΔ­"
// "aTA ?\u{17}KΗΊ\u{1f}\u{7}\u{19}\u{2}\u{c}\u{7}?"
@LPGhatguy
LPGhatguy / compareList.lua
Created June 12, 2018 18:13
A quick-and-dirty list comparison function in Lua that visualizes each list, handling sparse arrays correctly.
local function compareList(list, len)
-- We use varargs here since spare arrays make Lua upset
return function(...)
len = len or select("#", ...)
local hasDifference = false
local differentIndexes = {}
for i = 1, len do
if list[i] ~= select(i, ...) then
local Roact = require(script.Parent.Parent.Roact)
local WindowedView = Roact.PureComponent:extend("WindowedView")
function WindowedView:init()
self.state = {
viewStart = 1,
viewSize = 1,
paddingStart = 0,
}
@LPGhatguy
LPGhatguy / selector-example.lua
Created April 10, 2018 23:20
Copying the Reselect API in ~40 lines of code. Does not allocate on call. Untested.
local function applySelector(selector, ...)
if typeof(selector) == "string" then
return (...)[selector]
else
return selector(...)
end
end
local function listShallowEqual(a, b, len)
for i = 1, len do
@LPGhatguy
LPGhatguy / .cvimrc
Last active February 28, 2018 00:48
Configuration for cVim
set smoothscroll
unmap d u
let blacklists = ["*://mail.google.com/*", "*://play.google.com/*", "*://*.slack.com/*", "*://discordapp.com/*"]
@LPGhatguy
LPGhatguy / main.rs
Created June 3, 2017 08:56
Start program, attempt to move window, observe that window resizes
extern crate winit;
fn main() {
let events_loop = winit::EventsLoop::new();
let window = winit::WindowBuilder::new()
.with_dimensions(200, 200)
.with_max_dimensions(200, 200)
.build(&events_loop)
.unwrap();
@LPGhatguy
LPGhatguy / generate-community.html
Created May 24, 2017 06:38
Generate several 'community' emoji -- families construct with zero-width-joiners joined together. Renders most correctly on Windows 10 w/ Creators Update!
<!DOCTYPE html>
<html>
<head>
<title></title>
<style>
#output {
font-size: 3rem;
margin: 0;
padding: 0.5rem;
line-height: 1.2;
@LPGhatguy
LPGhatguy / gist:f4caed3b81e7f84bccb701eb953a59ee
Created May 24, 2017 06:12
Community emoji, rendered by GitHub
πŸ‘©πŸ½β€πŸš’β€πŸ‘©πŸ»β€πŸ‘¦πŸ»β€πŸ‘ΆπŸ»β€πŸ‘©πŸ»β€πŸ³β€πŸ‘©πŸΌβ€πŸ‘§πŸΎβ€πŸ‘ΆπŸΎβ€πŸ‘©πŸ½β€πŸš€β€πŸ‘¨πŸ½β€πŸ‘¦πŸ½β€πŸ‘¦πŸΌβ€πŸ‘¨πŸΎβ€πŸ«β€πŸ‘¨πŸΌβ€πŸ‘ΆπŸΎβ€πŸ‘§πŸ½β€πŸ‘¨πŸ½β€βœˆοΈβ€πŸ‘¨πŸΎβ€πŸ‘¦πŸΎβ€πŸ‘¦πŸΌβ€πŸ‘¨πŸΌβ€πŸš’β€πŸ‘©πŸΌβ€πŸ‘§πŸΌβ€πŸ‘§πŸΎβ€πŸ‘¨πŸΎβ€πŸŽ¨β€πŸ‘¨πŸΌβ€πŸ‘¦πŸΎβ€πŸ‘§πŸ»β€πŸ‘¨πŸΎβ€βœˆοΈβ€πŸ‘¨πŸΎβ€πŸ‘ΆπŸΌβ€πŸ‘¦πŸΌβ€πŸ‘¨πŸΌβ€πŸŽ¨β€πŸ‘©πŸΏβ€πŸ‘§πŸΎβ€πŸ‘§πŸ½β€πŸ‘©πŸΏβ€πŸ’»β€πŸ‘¨πŸ½β€πŸ‘¦πŸ½β€πŸ‘§πŸΌβ€πŸ‘©πŸΏβ€βœˆοΈβ€πŸ‘¨πŸΎβ€πŸ‘§πŸΏβ€πŸ‘§πŸ»β€πŸ‘©πŸΎβ€πŸŽ¨β€πŸ‘¨πŸΌβ€πŸ‘¦πŸΌβ€πŸ‘§πŸ»β€πŸ‘©πŸ»β€πŸŒΎβ€πŸ‘¨πŸ½β€πŸ‘§πŸΎβ€πŸ‘§πŸΎβ€πŸ‘©πŸΌβ€βš•οΈβ€πŸ‘¨πŸ½β€πŸ‘§πŸΎβ€πŸ‘§πŸΌβ€πŸ‘¨πŸΎβ€πŸš’β€πŸ‘¨πŸΏβ€πŸ‘ΆπŸ½β€πŸ‘§πŸ½β€πŸ‘¨πŸ»β€πŸ’»β€πŸ‘¨πŸ½β€πŸ‘§πŸΎβ€πŸ‘ΆπŸΎβ€πŸ‘¨πŸ½β€πŸš€β€πŸ‘©πŸ½β€πŸ‘§πŸΌβ€πŸ‘§πŸ½β€πŸ‘¨πŸ½β€πŸ­β€πŸ‘©πŸ½β€πŸ‘ΆπŸΌβ€πŸ‘¦πŸΎβ€πŸ‘¨πŸΌβ€πŸš’β€πŸ‘©πŸ½β€πŸ‘ΆπŸΎβ€πŸ‘¦πŸ»β€πŸ‘¨πŸΌβ€βœˆοΈβ€πŸ‘¨πŸΎβ€πŸ‘§πŸ½β€πŸ‘§πŸΌβ€πŸ‘¨πŸΌβ€πŸ«β€πŸ‘©πŸΎβ€πŸ‘§πŸ»β€πŸ‘¦πŸΎβ€πŸ‘¨πŸ½β€πŸ³β€πŸ‘©πŸΏβ€πŸ‘ΆπŸΎβ€πŸ‘¦πŸ»β€πŸ‘¨πŸ»β€βœˆοΈβ€πŸ‘©πŸΌβ€πŸ‘ΆπŸΌβ€πŸ‘ΆπŸ»β€πŸ‘©πŸ»β€βœˆοΈβ€πŸ‘¨πŸΏβ€πŸ‘§πŸ»β€πŸ‘§πŸΌβ€πŸ‘¨πŸΎβ€πŸŽ¨β€πŸ‘©πŸΌβ€πŸ‘ΆπŸ½β€πŸ‘ΆπŸ½β€πŸ‘©πŸΌβ€πŸš€β€πŸ‘©πŸΎβ€πŸ‘¦πŸΌβ€πŸ‘§πŸ½β€πŸ‘¨πŸ½β€πŸ’»β€πŸ‘©πŸΌβ€πŸ‘§πŸΌβ€πŸ‘¦πŸΎβ€πŸ‘¨πŸΎβ€πŸŽ€β€πŸ‘©πŸΎβ€πŸ‘§πŸ½β€πŸ‘¦πŸΎβ€πŸ‘¨πŸ»β€πŸŽ¨β€πŸ‘¨πŸΌβ€πŸ‘ΆπŸΌβ€πŸ‘§πŸ½β€πŸ‘©πŸΌβ€πŸŽ€β€πŸ‘¨πŸ»β€πŸ‘§πŸΌβ€πŸ‘§πŸΎβ€πŸ‘©πŸΌβ€πŸŽ“β€πŸ‘¨πŸΌβ€πŸ‘§πŸΌβ€πŸ‘§πŸΎβ€πŸ‘¨πŸΎβ€πŸš’β€πŸ‘¨πŸΎβ€πŸ‘§πŸΎβ€πŸ‘ΆπŸΏβ€πŸ‘¨πŸΎβ€πŸ’Όβ€πŸ‘¨πŸΎβ€πŸ‘§πŸΎβ€πŸ‘¦πŸΎβ€πŸ‘©πŸ½β€πŸš’β€πŸ‘©πŸΌβ€πŸ‘ΆπŸΏβ€πŸ‘§πŸΎβ€πŸ‘¨πŸΏβ€πŸ³β€πŸ‘©πŸ½β€πŸ‘§πŸ½β€πŸ‘§πŸΎβ€πŸ‘©πŸΎβ€πŸš€β€πŸ‘©πŸΌβ€πŸ‘§πŸΎβ€πŸ‘§πŸΏβ€πŸ‘©πŸΏβ€πŸ³β€πŸ‘©πŸ½β€πŸ‘§πŸ½β€πŸ‘§πŸΌβ€πŸ‘¨πŸ½β€πŸ­β€πŸ‘¨πŸΏβ€πŸ‘§πŸΎβ€πŸ‘§πŸ½β€πŸ‘¨πŸ½β€πŸ³β€πŸ‘©πŸΌβ€πŸ‘¦πŸ»β€πŸ‘ΆπŸ»β€πŸ‘¨πŸ½β€πŸ«β€πŸ‘©πŸ»β€πŸ‘§πŸΌβ€πŸ‘§πŸΌβ€πŸ‘¨πŸ»β€πŸ”¬β€πŸ‘¨πŸΏβ€πŸ‘§πŸΏβ€πŸ‘ΆπŸΎβ€πŸ‘©πŸΎβ€πŸ«β€πŸ‘¨πŸ½β€πŸ‘§πŸΌβ€πŸ‘§πŸΌβ€πŸ‘¨πŸΌβ€πŸŽ€β€πŸ‘¨πŸ½β€πŸ‘¦πŸ»β€πŸ‘§πŸΌβ€πŸ‘¨πŸ½β€πŸ³β€πŸ‘©πŸ»β€πŸ‘§πŸΎβ€πŸ‘§πŸΎβ€πŸ‘©πŸ»β€πŸ”¬β€πŸ‘©πŸΎβ€πŸ‘§πŸ»β€πŸ‘ΆπŸΌβ€πŸ‘¨πŸ½β€πŸŽ¨β€πŸ‘©πŸ»β€πŸ‘¦πŸ½β€πŸ‘ΆπŸΎβ€πŸ‘©πŸ»β€πŸ’Όβ€πŸ‘¨πŸΌβ€πŸ‘§πŸ½β€πŸ‘ΆπŸ½β€πŸ‘©πŸΎβ€πŸŽ€β€πŸ‘¨πŸ½β€πŸ‘ΆπŸ»β€πŸ‘§πŸΎβ€πŸ‘©πŸ½β€πŸ”¬β€πŸ‘©πŸΎβ€πŸ‘¦πŸ½β€πŸ‘§πŸ»β€πŸ‘¨πŸΏβ€πŸŽ¨β€πŸ‘¨πŸΌβ€πŸ‘§πŸΎβ€πŸ‘§πŸΌβ€πŸ‘©πŸΌβ€πŸš’β€πŸ‘©πŸΌβ€πŸ‘¦πŸΎβ€πŸ‘§πŸ½β€πŸ‘¨πŸ½β€βœˆοΈβ€πŸ‘¨πŸΏβ€πŸ‘§πŸΎβ€πŸ‘§πŸΏβ€πŸ‘¨πŸΎβ€πŸ­β€πŸ‘©πŸΌβ€πŸ‘ΆπŸΎβ€πŸ‘ΆπŸ½β€πŸ‘¨πŸ½β€πŸŽ€β€πŸ‘©πŸΌβ€πŸ‘ΆπŸΎβ€πŸ‘ΆπŸ½β€πŸ‘¨πŸ½β€πŸš€β€πŸ‘¨πŸΌβ€πŸ‘§πŸΏβ€πŸ‘ΆπŸΎβ€πŸ‘¨πŸΎβ€πŸ«β€πŸ‘¨πŸΌβ€πŸ‘ΆπŸΌβ€πŸ‘ΆπŸΌβ€πŸ‘¨πŸ»β€πŸ­β€πŸ‘©πŸΏβ€πŸ‘§πŸΌβ€πŸ‘§πŸΏβ€πŸ‘©πŸ½β€πŸŽ¨β€πŸ‘¨πŸ½β€πŸ‘ΆπŸΎβ€πŸ‘§πŸΎβ€πŸ‘¨πŸ»β€πŸš€β€πŸ‘¨πŸΌβ€πŸ‘¦πŸΎβ€πŸ‘ΆπŸΏβ€πŸ‘©πŸ½β€βœˆοΈβ€πŸ‘¨πŸΎβ€πŸ‘¦πŸΏβ€πŸ‘§πŸΎβ€πŸ‘¨πŸΌβ€πŸ’»β€πŸ‘©πŸ½β€πŸ‘§πŸ»β€πŸ‘ΆπŸΌβ€πŸ‘¨πŸΏβ€πŸ­β€πŸ‘¨πŸ½β€πŸ‘§πŸΎβ€πŸ‘§πŸΌβ€πŸ‘¨πŸ»β€βœˆοΈβ€πŸ‘©πŸΎβ€πŸ‘¦πŸΎβ€πŸ‘ΆπŸ½β€πŸ‘©πŸΌβ€πŸ”¬β€πŸ‘©πŸ½β€πŸ‘ΆπŸΎβ€πŸ‘ΆπŸΎβ€πŸ‘¨πŸ½β€πŸ­β€πŸ‘©πŸΎβ€πŸ‘ΆπŸΏβ€πŸ‘¦πŸΎβ€πŸ‘¨πŸ½β€πŸŽ€β€πŸ‘©πŸ½β€πŸ‘¦πŸΌβ€πŸ‘ΆπŸΎβ€πŸ‘©πŸΎβ€πŸ³β€πŸ‘©πŸ½β€πŸ‘¦πŸΌβ€πŸ‘ΆπŸΎβ€πŸ‘©πŸ½β€πŸ«β€πŸ‘©πŸ½β€πŸ‘ΆπŸΎβ€πŸ‘§πŸ½β€πŸ‘©πŸ½β€πŸŽ¨β€πŸ‘¨πŸΎβ€πŸ‘§πŸ»β€πŸ‘¦πŸ½β€πŸ‘¨πŸΎβ€πŸ”¬β€πŸ‘¨πŸΏβ€πŸ‘¦πŸΌβ€πŸ‘§πŸΏβ€πŸ‘©πŸ½β€πŸŒΎβ€πŸ‘©πŸΌβ€πŸ‘ΆπŸΌβ€πŸ‘§πŸ½β€πŸ‘¨πŸΏβ€πŸŽ“β€πŸ‘©πŸΌβ€πŸ‘ΆπŸ½β€πŸ‘ΆπŸΏβ€πŸ‘©πŸΏβ€πŸš€β€πŸ‘©