Anonymous Pens can't be embedded.
Edit on CodePen
{"__browser":{"device":"unknown_device","mobile":false,"name":"unknown browser","platform":"unknown_platform","version":"0"},"__constants":{},"__CPDATA":{"domain_iframe":"https://cdpn.io","environment":"production","host":"codepen.io","iframe_allow":"accelerometer; ambient-light-sensor; camera; display-capture; encrypted-media; geolocation; gyroscope; microphone; midi; payment; web-share; vr","iframe_sandbox":"allow-forms allow-modals allow-pointer-lock allow-popups allow-same-origin allow-scripts allow-top-navigation-by-user-activation allow-downloads allow-presentation"},"__graphql":{"data":null,"errors":[{"message":"Cannot return null for non-nullable field Query.sessionUser"}]},"__pay_stripe_public_key":"pk_live_2GndomDfiklqpSNQn8FrGuwZSMIMzha7DkLJqlYe7IR0ihKAlKdiHg68JJc5eVPt68rzAjzAAVXcUwjySHRCsgjQQ00gtRBUFNH","__pay_braintree_env":"production","__boomboom":{"serve_url":"https://cdpn.io/cpe/boomboom","store_url":"https://codepen.io/cpe/boomboom/store"},"__pageType":"embed","__item":"{\"editor_settings\":{\"auto_run\":true,\"auto_save\":true,\"format_on_save\":false,\"indent_with\":\"spaces\",\"tab_size\":\"2\",\"id\":\"VoDkNZ\",\"autocomplete\":false,\"code_folding\":true,\"css_pre_processor\":\"none\",\"css_prefix\":\"neither\",\"css_starter\":\"neither\",\"emmet_active\":true,\"font_size\":\"14\",\"font_type\":\"system\",\"html_pre_processor\":\"none\",\"js_pre_processor\":\"none\",\"key_bindings\":\"normal\",\"line_numbers\":true,\"line_wrapping\":true,\"match_brackets\":true,\"snippets\":{\"markupSnippets\":{},\"stylesheetSnippets\":{}},\"theme\":\"twilight\"},\"hashid\":\"bvPWXK\",\"itemType\":\"pen\",\"resources\":[],\"tags\":[],\"id\":23660691,\"user_id\":1,\"html\":\"\",\"css\":\"body {\\n margin: 0;\\n padding: 0;\\n}\",\"parent\":23659192,\"js\":\"const VERTEX_SHADER = `\\n varying vec2 vUv;\\n \\n void main() {\\n vUv = uv;\\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position,1.0);\\n }\\n`\\n\\nconst BUFFER_A_FRAG = `\\n varying vec2 vUv;\\n \\n void main(){\\n gl_FragColor = vec4(vUv,0.0,1.0);\\n }\\n`\\n\\nconst BUFFER_FINAL_FRAG = `\\n uniform sampler2D iChannel0;\\n uniform sampler2D iChannel1;\\n uniform sampler2D iResolution;\\n varying vec2 vUv;\\n \\n void main() {\\n vec2 uv = vUv;\\n vec2 a = texture2D(iChannel1,uv).xy;\\n gl_FragColor = vec4(texture2D(iChannel0,a).rgb,1.0);\\n // gl_FragColor = texture2D(iChannel0,vUv); // only iChannel0\\n // gl_FragColor = texture2D(iChannel1,vUv); // only iChannel!\\n }\\n`\\n\\nclass App {\\n\\n private width = 1024\\n private height = 512\\n\\n private renderer = new THREE.WebGLRenderer()\\n private loader = new THREE.TextureLoader()\\n private mousePosition = new THREE.Vector4()\\n private orthoCamera = new THREE.OrthographicCamera(-1, 1, 1, -1, 0, 1)\\n private counter = 0\\n\\n constructor() {\\n\\n this.renderer.setSize(this.width, this.height)\\n document.body.appendChild(this.renderer.domElement)\\n\\n this.renderer.domElement.addEventListener('mousedown', () => {\\n this.mousePosition.setZ(1)\\n this.counter = 0\\n })\\n\\n this.renderer.domElement.addEventListener('mouseup', () => {\\n this.mousePosition.setZ(0)\\n })\\n\\n this.renderer.domElement.addEventListener('mousemove', event => {\\n\\n const x = (event.clientX / this.width) * 2 - 1\\n const y = -(event.clientY / this.height) * 2 + 1\\n\\n this.mousePosition.setX(x)\\n this.mousePosition.setY(y)\\n\\n })\\n\\n }\\n\\n private targetA = new BufferManager(this.renderer, { width: this.width, height: this.height })\\n // private targetB = new BufferManager(this.renderer, { width: this.width, height: this.height })\\n private targetC = new BufferManager(this.renderer, { width: this.width, height: this.height })\\n\\n private bufferA: BufferShader\\n // private bufferB: BufferShader\\n private bufferImage: BufferShader\\n\\n public start() {\\n \\n const resolution = new THREE.Vector3(this.width, this.height, window.devicePixelRatio)\\n const channel0 = this.loader.load('https://res.cloudinary.com/di4jisedp/image/upload/v1523722553/wallpaper.jpg')\\n this.loader.setCrossOrigin('')\\n\\n this.bufferA = new BufferShader(BUFFER_A_FRAG, {\\n iFrame: { value: 0 },\\n iResolution: { value: resolution },\\n iMouse: { value: this.mousePosition },\\n iChannel0: { value: null }\\n // iChannel1: { value: null }\\n })\\n\\n // this.bufferB = new BufferShader(require('./shaders/glsl/buffer-b.frag'), {\\n // iFrame: { value: 0 },\\n // iResolution: { value: resolution },\\n // iMouse: { value: this.mousePosition },\\n // iChannel0: { value: null }\\n // })\\n\\n this.bufferImage = new BufferShader(BUFFER_FINAL_FRAG, {\\n iResolution: { value: resolution },\\n iMouse: { value: this.mousePosition },\\n iChannel0: { value: channel0 },\\n iChannel1: { value: null }\\n })\\n\\n this.animate()\\n\\n }\\n\\n private animate() {\\n requestAnimationFrame(() => {\\n\\n this.bufferA.uniforms[ 'iFrame' ].value = this.counter++\\n\\n this.bufferA.uniforms[ 'iChannel0' ].value = this.targetA.readBuffer.texture\\n // this.bufferA.uniforms[ 'iChannel1' ].value = this.targetB.readBuffer.texture\\n this.targetA.render(this.bufferA.scene, this.orthoCamera)\\n\\n // this.bufferB.uniforms[ 'iChannel0' ].value = this.targetA.readBuffer.texture\\n // this.targetB.render(this.sceneB, this.orthoCamera)\\n\\n this.bufferImage.uniforms[ 'iChannel1' ].value = this.targetA.readBuffer.texture\\n this.targetC.render(this.bufferImage.scene, this.orthoCamera, true)\\n\\n this.animate()\\n\\n })\\n\\n }\\n\\n}\\n\\nclass BufferShader {\\n\\n public material: THREE.ShaderMaterial\\n public scene: THREE.Scene\\n\\n constructor(fragmentShader: string, public uniforms: {} = {}) {\\n this.material = new THREE.ShaderMaterial({\\n fragmentShader,\\n vertexShader: VERTEX_SHADER,\\n uniforms\\n })\\n this.scene = new THREE.Scene()\\n this.scene.add(\\n new THREE.Mesh(new THREE.PlaneBufferGeometry(2, 2), this.material)\\n )\\n }\\n\\n}\\n\\nclass BufferManager {\\n\\n public readBuffer: THREE.WebGLRenderTarget\\n public writeBuffer: THREE.WebGLRenderTarget\\n\\n constructor( private renderer: THREE.WebGLRenderer, { width, height } ) {\\n\\n this.readBuffer = new THREE.WebGLRenderTarget(width, height, {\\n minFilter: THREE.LinearFilter,\\n magFilter: THREE.LinearFilter,\\n format: THREE.RGBAFormat,\\n type: THREE.FloatType,\\n stencilBuffer: false\\n })\\n\\n this.writeBuffer = this.readBuffer.clone()\\n\\n }\\n\\n public swap() {\\n const temp = this.readBuffer\\n this.readBuffer = this.writeBuffer\\n this.writeBuffer = temp\\n }\\n\\n public render(scene: THREE.Scene, camera: THREE.Camera, toScreen: boolean = false) {\\n if (toScreen) {\\n this.renderer.render(scene, camera)\\n } else {\\n this.renderer.render(scene, camera, this.writeBuffer, true)\\n }\\n this.swap()\\n }\\n\\n}\\n\\n\\n(new App()).start()\\n\",\"html_pre_processor\":\"none\",\"css_pre_processor\":\"none\",\"js_pre_processor\":\"typescript\",\"html_classes\":\"\",\"css_starter\":\"neither\",\"css_prefix_free\":null,\"css_external\":null,\"js_library\":null,\"js_modernizr\":null,\"js_external\":null,\"created_at\":\"2018-04-14T17:23:50.000Z\",\"updated_at\":\"2018-04-14T17:23:50.000Z\",\"session_hash\":\"321e4371bde200a22683e88e38c2e416\",\"title\":\"Shader Test\",\"description\":\"\",\"slug_hash\":\"bvPWXK\",\"head\":\"\",\"private\":false,\"has_animation\":false,\"css_pre_processor_lib\":\"\",\"checksum\":0,\"screenshot_uuid\":null,\"team_id\":0,\"css_prefix\":\"neither\",\"template\":false,\"js_module\":false,\"deleted_at\":null,\"deleted_by_user_id\":null,\"hard_delete_at\":null,\"pen_hash\":null}","__jwt":"eyJhbGciOiJIUzI1NiJ9.eyJjbGFpbXMiOnsidXNlcl9pZCI6MX0sImV4cCI6MTY1NjM4OTY5NX0.tn-6SlEtNo1AUNZme0RailgGNm8kTwKWGGCe3iNi7oU","__processorsMap":{"autoprefixer":"autoprefixer-10","babel":"babel-7","coffeescript":"coffeescript-2","format-1":"format-1","flutter":"flutter-1","haml":"haml-4","less":"less-3","lint-1":"lint-1","livescript":"livescript-1","markdown":"markdown-11","postcss":"postcss-7","pug":"pug-2","sass":"sass-1","scss":"sass-1","sass-ruby-3":"sass-ruby-3","sass-ruby-compass-3":"sass-ruby-compass-3","slim":"slim-3","stylus":"stylus-0","typescript":"typescript-4","vue":"vue-2","vue3":"vue-3"},"__favicon_mask_icon":"https://cpwebassets.codepen.io/assets/favicon/logo-pin-8f3771b1072e3c38bd662872f6b673a722f4b3ca2421637d5596661b4e2132cc.svg","__favicon_shortcut_icon":"https://cpwebassets.codepen.io/assets/favicon/favicon-aec34940fbc1a6e787974dcd360f2c6b63348d4b1f4e06c77743096d55480f33.ico","__path_to_iframe_console_runner":"https://cpwebassets.codepen.io/assets/editor/iframe/iframeConsoleRunner-7549a40147ccd0ba0a6b5373d87e770e49bb4689f1c2dc30cccc7463f207f997.js","__path_to_iframe_refresh_css":"https://cpwebassets.codepen.io/assets/editor/iframe/iframeRefreshCSS-4793b73c6332f7f14a9b6bba5d5e62748e9d1bd0b5c52d7af6376f3d1c625d7e.js","__path_to_iframe_runtime_errors":"https://cpwebassets.codepen.io/assets/editor/iframe/iframeRuntimeErrors-4f205f2c14e769b448bcf477de2938c681660d5038bc464e3700256713ebe261.js","__path_to_processor_worker":"https://cpwebassets.codepen.io/assets/packs/router.js","__path_to_stop_execution_on_timeout":"https://cpwebassets.codepen.io/assets/common/stopExecutionOnTimeout-1b93190375e9ccc259df3a57c1abc0e64599724ae30d7ea4c6877eb615f89387.js","__pen_normalize_css_url":"https://cdnjs.cloudflare.com/ajax/libs/normalize/5.0.0/normalize.min.css","__pen_prefix_free_url":"https://cdnjs.cloudflare.com/ajax/libs/prefixfree/1.0.7/prefixfree.min.js","__pen_reset_css_url":"https://cdnjs.cloudflare.com/ajax/libs/meyer-reset/2.0/reset.min.css"}