{"version":3,"file":"component---src-pages-open-source-js-e9c7c0db07363599b084.js","mappings":"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","sources":["webpack://gatsby-starter-default/./src/components/opensourcecategory.js","webpack://gatsby-starter-default/./src/data/opensource.js","webpack://gatsby-starter-default/./src/pages/open-source.js"],"sourcesContent":["import React, { PureComponent } from 'react'\nimport PropTypes from 'prop-types'\n\nclass OpenSourceCategory extends PureComponent {\n render() {\n const { categoryTitle, entries } = this.props\n return (\n
\n

{categoryTitle}

\n {entries.map(\n ({\n projectName,\n description,\n programmingLanguages,\n repositoryLink,\n }) => (\n
\n

\n {projectName}\n

\n

{description}

\n

\n Programming languages: \n {programmingLanguages.join(', ')}\n

\n
\n )\n )}\n
\n )\n }\n}\n\nOpenSourceCategory.propsTypes = {\n categoryTitle: PropTypes.string.isRequired,\n entries: PropTypes.arrayOf(\n PropTypes.shape({\n projectName: PropTypes.string.isRequired,\n description: PropTypes.string.isRequired,\n programmingLanguages: PropTypes.arrayOf(PropTypes.string.isRequired)\n .isRequired,\n repositoryLink: PropTypes.string.isRequired,\n }).isRequired\n ).isRequired,\n}\n\nexport default OpenSourceCategory\n","export default [\n {\n categoryTitle: 'UI Component Libraries',\n entries: [\n {\n projectName: 'Cassette',\n description:\n 'A flexible media player component library for React that requires no up-front configuration. Cassette powers the media playback on this site!',\n programmingLanguages: ['JavaScript', 'CSS'],\n repositoryLink: 'https://github.com/benwiley4000/cassette',\n },\n {\n projectName: 'Win95 Media Player',\n description:\n 'A React media player component inspired by the Media Player app that shipped with Windows 95. Also powered by Cassette!',\n programmingLanguages: ['JavaScript'],\n repositoryLink: 'https://github.com/benwiley4000/win95-media-player',\n },\n {\n projectName: 'React GIF Player',\n description:\n 'A component for React that allows a user to toggle a GIF animation on and off.',\n programmingLanguages: ['JavaScript', 'CSS'],\n repositoryLink: 'https://github.com/benwiley4000/react-gif-player',\n },\n {\n projectName: 'react-dot-fragment',\n description:\n \"A small polyfill implementation of React 16's Fragment component which is compatible with React 15.\",\n programmingLanguages: ['JavaScript'],\n repositoryLink: 'https://github.com/benwiley4000/react-dot-fragment',\n },\n ],\n },\n {\n categoryTitle: 'Graphics',\n entries: [\n {\n projectName: 'gif-frames',\n description:\n 'A tool for extracting frames as still images from an animated GIF, in either Node.js or a web browser.',\n programmingLanguages: ['JavaScript'],\n repositoryLink: 'https://github.com/benwiley4000/gif-frames',\n },\n {\n projectName: 'raytracer',\n description:\n 'A ray-tracing 3D renderer implemented from scratch. Loads scene descriptions as text and shows render progress in real-time.',\n programmingLanguages: ['C++'],\n repositoryLink: 'https://github.com/benwiley4000/raytracer',\n },\n ],\n },\n {\n categoryTitle: 'PICO-8 Tools',\n entries: [\n {\n projectName: 'pico8-responsive-webplayer-transform',\n description:\n 'A post-processor for making the web export for PICO-8 games display better on devices with small screens.',\n programmingLanguages: ['Python', 'JavaScript', 'CSS'],\n repositoryLink:\n 'https://github.com/benwiley4000/pico8-responsive-webplayer-transform',\n },\n {\n projectName: 'pico8-gpio-listener',\n description:\n \"An API for subscribing to changes in a PICO-8 game's GPIO state from JavaScript. This enables easy implementation of effects, such as device vibration, in response to in-game events.\",\n programmingLanguages: ['JavaScript'],\n repositoryLink: 'https://github.com/benwiley4000/pico8-gpio-listener',\n },\n {\n projectName: 'pico8-to-lua',\n description:\n 'A command-line utility that converts the PICO-8 variety of extended Lua syntax to standard Lua syntax.',\n programmingLanguages: ['Lua'],\n repositoryLink: 'https://github.com/benwiley4000/pico8-to-lua',\n },\n {\n projectName: 'pico8-messenger',\n description:\n \"Utility functions for passing numerical data between a web-exported PICO-8 game and its surrounding browser context, by encoding the data as binary in PICO-8's GPIO interface.\",\n programmingLanguages: ['JavaScript', 'Lua'],\n repositoryLink: 'https://github.com/benwiley4000/pico8-messenger',\n },\n {\n projectName: 'tiny-pico8-touch-ui',\n description:\n 'A function that can bind an arbitrary browser UI element as a touch-friendly PICO-8 game control.',\n programmingLanguages: ['JavaScript'],\n repositoryLink: 'https://github.com/benwiley4000/tiny-pico8-touch-ui',\n },\n ],\n },\n {\n categoryTitle: 'Applications',\n entries: [\n {\n projectName: 'Volca Sampler',\n description:\n 'Web app (desktop + mobile) for capturing musical samples and transferring them to the Volca Sample sample-based synthesizer',\n programmingLanguages: ['Javascript', 'C', 'TypeScript (JSDoc)', 'SCSS'],\n repositoryLink: 'https://github.com/benwiley4000/volca-sampler',\n },\n {\n projectName: 'steam-party-planner',\n description:\n 'Tracks a pool of Steam user accounts and compiles data about games held in common between them. Built on top of the Steam Web API.',\n programmingLanguages: ['JavaScript', 'HTML', 'CSS'],\n repositoryLink: 'https://github.com/benwiley4000/steam-party-planner',\n },\n {\n projectName: 'Jazzerbot',\n description:\n 'Asks the user for a few parameters, then outputs an improvised piece of blues music. This is the first application I built (I was 15 years old).',\n programmingLanguages: ['Java'],\n repositoryLink: 'https://github.com/benwiley4000/jazzerbot',\n },\n ],\n },\n]\n","import React, { Fragment } from 'react'\nimport { Link } from 'gatsby'\n\nimport SEO from '../components/seo'\n\nimport ProfileImage from '../components/profileimage'\nimport OpenSourceCategory from '../components/opensourcecategory'\nimport opensource from '../data/opensource'\n\nconst OpenSource = props => (\n \n \n

Open Source

\n

\n Below is a selection of open source software projects I have authored.\n Additionally, all the games I've worked on are\n open source.\n

\n {opensource.map(category => (\n \n ))}\n
\n)\n\nexport default OpenSource\n"],"names":["OpenSourceCategory","_PureComponent","apply","arguments","_inheritsLoose","prototype","render","categoryTitle","entries","this","props","React","className","map","_ref","projectName","description","programmingLanguages","repositoryLink","key","href","join","PureComponent","propsTypes","PropTypes","isRequired","Fragment","SEO","title","keywords","Link","to","opensource","category","Object","assign"],"sourceRoot":""}